zoukankan      html  css  js  c++  java
  • Struts2注解开发

     Hibernatespring框架的开发前边总结了,这次看一下流行的MVC流程框架Struts2的注解开发吧。Struts2主要解决了从JSPAction上的流程管理,如何进行Uriaction类中每个方法的绑定这是重点,在这里先简单看一下配置文件中的简单配置:

    1. <span style="font-size:18px;">  <!-- 这是包名和命名空间的声明 -->  
    2.     <package name="orgPackage" namespace="/org" extends="struts-default">  
    3.         <!-- 这是action和方法的声明 -->  
    4.         <action name="index" class="orgAction" method="index">  
    5.             <result name="success" type="dispatcher">/jsp/org/index.jsp</result>  
    6.         </action>  
    7.     </package>  
    8. </span>  

     

             感觉Struts2的配置还是比较麻烦的,需要我们配置每一个action中的每一个方法进行配置,当然了,这里也可以通过通配符*的方式进行简化。但是每个类都需要遵循规则。这里看一下Struts2注解的开发吧!

     

            一,引入支持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包等新的版本现在都是支持注解开发的,不断的学习,不断的优化,不断提高效率,注解开发利弊并存着,我们要懂的扬长避短,让每个框架,每种思想的优点都来为我们开发即可。

  • 相关阅读:
    特征选取1-from sklearn.feature_selection import SelectKBest
    使用K-S检验一个数列是否服从正态分布、两个数列是否服从相同的分布
    风控8-收码平台
    风控7-同盾设备指纹
    互联网黑产剖析_虚假号码
    风控3_iv算法详细解释
    woe_iv原理和python代码建模
    逾期30天和60天的回款概率
    (剑指Offer)面试题15:链表中倒数第k个结点
    (剑指Offer)面试题14:调整数组顺序使奇数位于偶数前面
  • 原文地址:https://www.cnblogs.com/antis/p/6727562.html
Copyright © 2011-2022 走看看