struts2的使用知识点

最开始学习java的时候学习过struts,但是对配置和struts的理解深度不够,现在工作虽然再用,但是自己搭建环境和使用心得始终很零散,所以现在决定重新理一遍,有条理的学习一下struts。

至于struts就不说了,说说使用吧!

一、环境的搭建

1.使用一个框架,肯定是搭建环境,struts的jar包如下:

commons-fileupload-1.2.2.jar   【文件上传相关包】

commons-io-2.0.1.jar

struts2-core-2.3.4.1.jar           【struts2核心功能包】

xwork-core-2.3.4.1.jar           【Xwork核心包】

ognl-3.0.5.jar                                        【Ognl表达式功能支持表】

commons-lang3-3.1.jar          【struts对java.lang包的扩展】

freemarker-2.3.19.jar            【struts的标签模板库jar文件】

javassist-3.11.0.GA.jar           【struts对字节码的处理相关jar】

2.引入jar包之后,进行web.xml的配置

引入核心过滤器,

<!-- 引入struts核心过滤器 -->

    <filter>

        <filter-name>struts2</filter-name>

        <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>

    </filter>

    <filter-mapping>

        <filter-name>struts2</filter-name>

        <url-pattern>/*</url-pattern>

    </filter-mapping>

3.开发action,写一个action

1 public class HelloAction extends ActionSupport{
2     public String execute() throws Exception{
3       //具体的代码就写在这里
4      return string;//string 的作用就是再接下来的struts中找到对应的转向页面,在这里写success或者SUCCESS;
5 } 6 }

4.在struts.xml中配置action

<struts>
    <package name="xxxx" extends="struts-default">
        <action name="hello" class="cn.itcast.action.HelloAction" method="execute">
            <result name="success">/success.jsp</result>
        </action>
    </package> 
</struts>

这就是struts的拦截器,和过滤器差不多,说道拦截器,就是struts了。过滤器是servlet的概念。

由上面的简单几步,就可以通过hello.action访问,success.jsp页面了

 二、实现action的3中方法

1.继承ActionSupport,开发中用这种方法

public class UserAction2 extends ActionSupport {

    /**
     * 
     */
    private static final long serialVersionUID = 1L;

    // Action中业务处理方法
    public String login() {
        System.out.println("UserAction.login()");
//        return "success";
        return SUCCESS;
    }
}

2.实现Action

public class UserAction3 implements Action {

    // Action中业务处理方法
    public String login() {
        System.out.println("UserAction.login()");
        return "success";
    }

    public String execute() throws Exception {
        return null;
    }
}

3.直接写

public class UserAction {
    
    private String userName;
    public void setUserName(String userName) {
        this.userName = userName;
    }
    

    // Action中业务处理方法
    public String login() {
        System.out.println("我草泥马" + userName);
        return "login";
    }
    
    public String register() {
        System.out.println("怎么回呢" + userName);
        return "register";
    }
}

三、通配符

*和{}

四、struts中路径匹配原则

localhost:8080/struts02/(名称空间)/(action的名字(name).action)

http://localhost:8080/struts02/user/a/b/user_login.action

Tomcat

  Localhost   找到访问那一台机器

  8080  找到tomcat

  Struts02 找到羡慕名称

  /user/a/b   先看看这个名称空间,没找到,继续向下;找到就返回

  /user/a    先看看有没有这个名称空间 ,没找到,继续向下;找到就返回

  /user 先看有没有这个名称空间,没找到,继续向下;找到就返回

  /      默认名称空间,还没找到,报错                     找到就返回

五、struts的常量

不积跬步,无以至千里,不积小流,无以成江海! 实践则生,空谈则死!
原文地址:https://www.cnblogs.com/renboqie/p/5171394.html