Struts2注解使用

版权声明:本文为博主原创文章,转载请注明出处 https://blog.csdn.net/qq_23934475/article/details/80336485

本文参考了https://blog.csdn.net/wk313753744/article/details/19920195

 

Struts2注解

1 Struts2注解的作用

使用注解可以用来替换struts.xml配置文件!!!

2 导包

  必须导入struts2-convention-plugin-2.3.15.jar包,它在struts2安装包下lib目录中。 

也可以使用maven
<!-- https://mvnrepository.com/artifact/org.apache.struts/struts2-convention-plugin -->
<dependency>
    <groupId>org.apache.struts</groupId>
    <artifactId>struts2-convention-plugin</artifactId>
    <version>2.2.3</version>
</dependency>
3 通过配置文件学习对应的注解

@Action来代替<action>元素!

l  String value():指定访问路径;

l  Result[] results():指定局部结果。

@Result来代替<result>元素!

l  String name():指定结果名称;

l  String location():指定结果路径。

@Namespace代替<package>namespace属性:

l  String value():指定名称空间。

@ParentPackage代替<package>extends属性:

l  String value():指定父包名称

@Namespace("/order")

@ParentPackage("struts-default")

publicclass OrderAction extends ActionSupport  {

    private String name;

    @Action(value="add", results={

           @Result(name="success", location="/index.jsp"),

           @Result(name="input", location="/add.jsp")})
    //根据情况跳转多个页面
    public String add() {

       System.out.println("add()");
        if(condition){
            return "input";
        }
       return SUCCESS;

    }

    @Action(value="mod", results={@Result(name="success", location="/index.jsp")})

    public String mod() {

       System.out.println("mod()");

       return SUCCESS;

    }

    @Action(value="del", results={@Result(name="success", location="/index.jsp")})

    public String del() {

       System.out.println("del()");

       return SUCCESS;

    }
  @Action(value="mod", results={@Result(params={"id","123","name","tom","pageName","${name}"},name="success", location="/index.jsp")})
    //param注解是参数可以传多个参数,内容为string数组{"参数一名","参数一值","参数二名","参数二值",......},${}可以取到方法中绑定的值
    public String modByID() {
        name = "tom"
       System.out.println("mod()");

       return SUCCESS;

    }



    public String getName(){
        return this.name;
    }

    public void setName(String name){
        this.name=name;
    }
}


 

4 注解相关常量

  struts.convention.classes.reload,默认值为false。表示在修改注解后需要重启Tomcat

 

下面看看源码
@Action

public @interface Action
{
  public static final String DEFAULT_VALUE = "DEFAULT_VALUE";

  String value() default "DEFAULT_VALUE";

  Result[] results() default {};

  InterceptorRef[] interceptorRefs() default {};

  String[] params() default {};

  ExceptionMapping[] exceptionMappings() default {};

  String className() default "DEFAULT_VALUE";
}

@result

public @interface Result
{
  String name() default "success";

  String location() default "";

  String type() default "";

  String[] params() default {};
}
阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页