采用注解的优点: 使得代码看起来简单方便,并且让一个映射变得更加的独立。传统的方式是配置struts.xml配置访问与Action的映射关系,如果映射比较多的时候就会显得比较杂乱,而且还有其它的异常处理类、拦截器等。会使得struts.xml变得更加的杂乱了。不方便我们剖析。 详情参看:http://www.360doc.com/showWeb/0/0/209474603.aspx 那么就有一个新的方法诞生了:就是采用注解的方式,让配置与Action在一起,那么我们分析代码的时候也就变得更加的清晰容易了。 当然,这两种方法都是对的,根据每个人的习惯问题,可以采用不同的方法配置。就目前而言,我所理解的:如果大型的项目,采用注解的方式比较好。中小型项目XML方式配置还是蛮不错的。 接下来我们就了解一下如何的使用注解进行配置了: 当然,首先的必备知识就是注解的学习了。前面已经总结,此时不再赘述。 下面了解一下XML中的配置与采用注解配置的对应关系: Package ·在struts.xml中根元素为<package>这个是配置包,以及其继承关系; ·那么采用注解方式配置方法为:@ParentPackage(value="struts-default"),当然如果键值为value的时候可以省略的 Action ·struts.xml中的Action配置就不比详解了,它包含有URL与Action的映射、方法的设置、拦截器的添加、结果的分配等; ·采用注解的时候,它有如下的几个属性: 1、 value:对应的就是URL,类型为String 2、 results:对应的就是action不同的执行结果对应的操作类,类型为Result[],那么Result的属性及其内容如下: a) name:结果的类型,也就是Action中的常量字段,如:SUCCESS、INPUT等,类型为String b) location:结果所处的位置,可以为Action、jsp、html等,类型为String c) params:要给结果传递的参数,格式为:{"key","value", "key2", "value2"},类型为String[] 3、 interceptorRefs:对应的就是拦截器,它的类型为:InterceptorRef[],那么InterceptorRef属性如下: a) name:interceptor的名字、或者interceptor-stack的名字 b) params:为拦截器传递的参数,其格式及类型和Result的params的一样 4、 params:为这个Action传递的参数,类型和格式和Result的params一样 5、 exceptionMappings:类型为ExceptionMapping[],那么ExceptionMapping的属性如下: a) result:结果名字,类型为String b) exception:所抛出的异常,类型为String c) params:为异常所传递的参数,类型和Result的params一样 那么就此,就完成了常用的对应总结。 下面是一个很简单的应用例子,只给出部分代码: …… @ParentPackage(value="struts-default") @Action(value = "register", results = { @Result(location = "/registerResult.jsp", name ="success") }) public class RegisterAction extends DefaultActionSupport { private String username; private String password; private Stringrepassword; private int age; private Date birthday; private Date graduation; …… 其实它和XML没有什么的区别。 那么当它和XML配置文件同时存在的时候,应该以注解的配置为准。 |
|