《struts2注解使用.docx》由会员分享,可在线阅读,更多相关《struts2注解使用.docx(10页珍藏版)》请在第壹文秘上搜索。
1、returnHabc;publicStringgetStr()returnstr;publicvoidsetStr(Stringstr)this.str三str;我们可以通过loginl.action访问,而在访问时,str这个属性已经有值,为str=”这是已经注入的!”返回的视图是loginsir.jsp当我们用/Iogin2.action访问时,str的值为null.返回的视图为login2-str.jsp而我们通过gggaccion调用的是abc()方法,返回的视图为ggg-abc.j$p9.与Result配置相关的Annotation1)ResultPathIReSUIt和ReSUIt
2、S2)eReSUltS用于组织多个ReSUlt因此它只需指定一个value属性值,该ValUe属性值为多个RCSUIt3) ReSUIt相当于StrUtS.xml文件中的result元素的做哟欧诺个。运用&Result必需指定个name属性,相当于CreSUItname=/另外,它还有几个可选的属性. type相当于resulttype=”/指定返回视图资源的类型 location相当于result.rcsult中间部分,用于指定实际视图位.置Action级的异样定义:以ExcepIionMUPPingS组合多个EXCePtionMapping后修饰的ACtiOn类。这种异样定义对ACtion
3、,的全部方法有效方法级的异样定义:将多个EXCePtiOnHaPPing组成数组后作为Action的GxceptionMappings属性值,,这种异样定义仅时被修饰的方法有效.12.拦常器配量相关的Annotation与拦截涔配置的AnnotaCiOn有包InterCePtorRef、UInterceptorRefs和eDefaultInterccptorRefInterceptorRefs用于组织多个QlnterceptorRef,因此它只须要指定一个value属性值,该value属性(为多个glnterCCPtOrRefInterceptorRef用于为指定Action引用Ianjieq
4、或者是拦截器校。也就相当于strut,xml中位于action./元素内部的interceptor-ref./子元素的作用.运用&InterceptorRefAnnotation时,必需制定一个ValUe屈性,JIJF指定所引用的拦截器或拦截器栈的名字。相当于Vinierceplo1.ref./子元素里name属性的作用。1.官方介绍的地址:.6docsConVention-plugin,html2. struts,xml文件配置.只选择几个重要的常星说明:(1) struts2.1.6现在只须要一个struts.xml文件就可以f,以前配struts.Iocale=ZhCN,struts,i
5、l8n.encding=UTI8.应用起动时会报一个警告,说没有配置locale,必须要在StrUtS.properties里面配置才不会报错,现在这个问题已经解决了,全部配置都可以在XmI文件中指定了。(2) 扩展名可以指定为空。这样地址栏比较好看。但也会有个问题,就是一些其他SerVIet映射,如cxf,我们会映射地址为/services/*,现在这个地址也变成SIrUIS2限制葩围的地址了,假如按默认的配置.会报找不到action的错误。解决方法是修改mapper类。这在以后文章中会提到。(3) constantiiime=vstruts.enable.DynamiCMelhodInVo
6、CaIion”ValUe=true/开启动态方法。要实现零配置,就是须要动态方法调用。开启action名称可以有“/”,个恳求地址有多个.StrUtS2就不会再运用类路径扫描的命名空间,只会运用配置的名称.所以既想action名称里运用“/”,又想用SlrUtS2默认搜寻的命名空间,只能自己修改一下convention插件的实现类了。(4) conslantname=slruls.ui.lhemeYaIUe=simple/)不用dojo的及struts2困难标签样式的就把主题设置为simple.这样可以不加教多余的模板。(5) constantn开启开发者模式,在平常开发时修改action的小
7、im配汽可以不重启,但是修改StrUtS.xml文件还是要重启。修改类的详细内容,debug模式下可以不重启,或是运用javarebcl,这个不在探讨范闱。constantname-*struts.convention,result,path,rva1ue=/IEBTNF/pages/)指定结果页面路径。convention插件会自动在此路径中找寻文件。放到WEBTNF的目的的爱护文件资源,只能通过程序内部跳转才能访问,我们的权限拦被器或其他权限处理只要加到action上就可以了。(7) constantname=struts.convention,action,suffixYalUe=Act
8、ion”/)constanlnune=,struls.convention,action,name,separator*VaIUe=一个action名字的获得比如为HeIIOWorldACtiono依据配置,acIionNtime为helloworld.(8)是否不扫描类。肯定要设为false,否则COnVentiOn插件不起作用,零配理也没有意义.(9)constantname=struts.convention,default,parent,package*VaIUe=default/)设置默认的父包,一股我们都设置一个default包继承自StrUtS-default。大部分类再继承de
9、fault。假如仃特别的类须要特别的包,只能在action中再指定父包(10) constantname=,struts,convention.package,locatorsValUe=action”/)cnslantnune=struts,convention,package,locators,disable”VaIUe=false”/)确定拽寻包的路径。只要是结尾为action的包都要搜寻。basePackage依据默认不用配置,假如配置,只会找以此配置开头的包。I。CatOrS及locators.basePackage都是一组以逗号分割的字符串。(11) 解除哪些包不搜寻。按默认配置即
10、可。逗号分割字符串。(12) 包括哪些jar包中的action,逗号分割字符串。(13)constantname-struts.convention,relative,result,types*ValUe=dispalcher,freenarker,velocity”/)默认返回的结果类型搜寻。按依次先找相关的dispatcher的jsp文件是否存在。然后再找freemarker,再找velocity.(14) constantname=*struts.convention,result,fIat1.ayout*ValUe-true/假如此值设为true,假如一个action的命名空间为/lo
11、gin,名称为HeIIoWOrIdACtiOn。result返回值是SUCCeSs,默认会找到WEB-INFpagesloginhello_world.jsp(lhoilo_worldsuccess,jsp就找这个文件,连接符“是在中配置的)。假如有一个action的result返回值是error”,就会找/IEBTNF/pageslogin/he11o_wor1d_error.jsp,假如此值设为false,假如一个action的命名空间为/login,名称为HCIIoWOrIdACtiOn。result返回值是success.默认会找到/WEB-INF/pages/login/hello-world/index,jsp(假如有SUCCeSs.jsp就找这个文件假如有一个aclion的result返回值是“error”,就会找/WEB-INF/PageSlogin/he11o_wor1d/error,jsp。(15) constantrume=,struls.convention.aclion.maplIMatchesVaIUe=false”/constantname=struts.convention,redirect,to.slashValUe=true/)这几个配置没有太多的实际意义,本着最小检查的原则就可以。(16)默认拦截器配置,已经简化了很多,一般不须要C