• Struts2注解详解


    转自:https://www.cnblogs.com/qq739178184/p/5109778.html

    一,引入支持Struts2支持注解开发jar包:

                     struts2-convention-plugin-2.1.8.1.jar(支持Struts2框架注解开发的jar包)

    二,Struts2使用注解开发需要遵循一些规范:

                  1Action要必须继承ActionSupport父类;

                  2Action所在的包名必须以  .action 结尾。

    三,action中常用的注解:

                  1@ParentPackage:对应xml配置文件中的package的父包,一般需要继承struts-default。

     

                  2,@Namespace:对应配置文件中的nameSpace,命名空间。

     

                  3,写在方法前边的注解:

    • @Action,这个注解对应<action>节点
      • value()表示action的请求名称,也就是<action>节点中的name属性;
      • results(),表示action的多个result;这个属性是一个数组属性,因此可以定义多个Result
      • interceptorRefs(),表示action的多个拦截器。这个属性也是一个数组属性,因此可以定义多个拦截器; 
      • exceptionMappings(),这是异常属性,它是一个ExceptionMapping的数组属性,表示action的异常,在使用时必须引用相应的拦截器
     

        4,看一下action中最常用的results中单个result注解的配置吧:

    • @Result,这个注解对应了<result>节点。这个注解只能应用于action类上。这个注解中也有几个属性:
      • name(),表示action方法的返回值,也就是<result>节点的name属性,默认情况下是【success】;
      • location(),表示view层文件的位置,可以是相对路径,也可以是绝对路径;
      • type(),是action的类型,比如redirect,不指定情况下,框架默认的是dispatcher
    • 这些注解基本上就可以完成我们的功能了,通过这样注解开发,可以代替配置xml的编写。下边我们来看一个使用注解开发的action的实例:
      • 复制代码
         1 <span style="font-size:18px;">@Controller//控制层的Spring注解
         2 @Scope("prototype")//支持多例
         3 @ParentPackage("struts-default")  //表示继承的父包
         4 @Namespace(value="/user") //表示当前Action所在命名空间
         5 public class LoginAction extends ActionSupport{
         6     
         7     @Resource
         8     private User user; //使用域驱动模式接收表单参数
         9 
        10     @Action( //表示请求的Action及处理方法
        11             value="login",  //表示action的请求名称
        12             results={  //表示结果跳转
        13                     @Result(name="success",location="/success.jsp",type="redirect"),
        14                     @Result(name="login",location="/login.jsp",type="redirect"),
        15                     @Result(name="error",location="/error.jsp",type="redirect")
        16             },
        17             interceptorRefs={ //表示拦截器引用
        18                     @InterceptorRef("defaultStack"),
        19                     @InterceptorRef("timer")
        20             },
        21             exceptionMappings={  //映射映射声明
        22                     @ExceptionMapping(exception="java.lang.Exception",result="error")
        23             }
        24     )
        25     public String login() throws Exception {
        26 
        27         int i = 1/0 ;
        28         
        29         if ("admin".equals(user.getUsercode()) && "admin".equals(user.getUserpswd())) {
        30             
        31             Map session = ActionContext.getContext().getSession();
        32             session.put("session_user", user);
        33             
        34             return "success";
        35         } else {
        36             return "login";
        37         }
        38 
        39     }
        40 }
        41 </span>
        复制代码

        综上,为Struts2框架中注解的开发。三大框架都利用注解开发,和配置文件开发,效率会大大提升的。各种框架,jar包等新的版本现在都是支持注解开发的,不断的学习,不断的优化,不断提高效率,注解开发利弊并存着,我们要懂的扬长避短,让每个框架,每种思想的优点都来为我们开发即可。

  • 相关阅读:
    小黄衫获奖感言
    原型设计
    20210326编程作业
    阅读任务
    准备工作
    cmd命令行批量修改文件名后缀
    【智能算法】模拟退火算法
    【智能算法】粒子群寻优算法
    【并行计算】基于OpenMP的并行编程
    Python科学计算——前期准备
  • 原文地址:https://www.cnblogs.com/sharpest/p/7724645.html
Copyright © 2020-2023  润新知