Struts2基于注解的Action配置(项目笔记)

来源:互联网 发布:mac 终端 重命名文件 编辑:程序博客网 时间:2024/06/08 05:42

最近项目有用到Struts2为了加深理解所以记一些项目的注释

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE struts PUBLIC      "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"      "http://struts.apache.org/dtds/struts-2.3.dtd"><struts>//设置默认的父包,一般我们都设置一个default包继承自struts-default。大部分类再继承default。如果有特殊的类需要特殊的包,只能在action中再指定父包了。<constant name="struts.convention.default.parent.package" value="crud-default" />//确定搜索包的路径。只要是结尾为action的包都要搜索。<constant name="struts.convention.package.locators" value="actions" />//basePackage按照默认不用配置,如果配置,只会找以此配置开头的包。locators及locators.basePackage都是一组以逗号分割的字符串。<constant name="struts.convention.package.locators.basePackage" value="org.party" />//在struts2.1.2后,struts2修改了默认的配置属性。即不可在ognl表达式中使用静态的方法,当然,静态变量还是可以使的<constant name="struts.ognl.allowStaticMethodAccess" value="true" />//为true,此时会根据Struts定义的自动装配策略(struts.objectFactory.spring.autoWire)进行自动装配。为false,则按constructor方式进行自动装配。<constant name="struts.objectFactory.spring.autoWire.alwaysRespect" value="true" />//开启动态方法。要实现零配置,就是需要动态方法调用。开启action名称可以有 “/”,一个请求地址有多个“/”,struts2就不会再使用类路径扫描的命名空间,只会使用配置的名称。所以既想action名称里使用“/”,又想用struts2默认搜索的命名空间,只能自己修改一下convention插件的实现类了。<constant name="struts.enable.DynamicMethodInvocation" value="true" />// 扩展名可以指定为空。这样地址栏比较好看。但也会有个问题,就是一些其他servlet映射,如cxf,我们会映射地址为/services/*,现在这个地址也变成struts2控制范围的地址了,如果按默认的配置会报找不到action的错误。<constant name="struts.action.extension" value="shtml,action"/><!-- 用于CRUD Action的parent package --><package name="crud-default" extends="convention-default,json-default"><!-- 基于paramsPrepareParamsStack,增加store interceptor保证actionMessage在redirect后不会丢失 --><interceptors>        <!-- 定义拦截器 -->        <interceptor name="TimerInterceptor" class="org.party.filter.TimerInterceptor"/>        <interceptor name="UnionsInterceptor" class="org.party.filter.UnionsInterceptor"/> <interceptor-stack name="crudStack"><interceptor-ref name="store"><param name="operationMode">AUTOMATIC</param></interceptor-ref><interceptor-ref name="paramsPrepareParamsStack" /><interceptor-ref name="UnionsInterceptor" /><interceptor-ref name="TimerInterceptor" /></interceptor-stack></interceptors><default-interceptor-ref name="crudStack" /></package>    <!-- 配置上传文件大小(小于10G) -->    <constant name="struts.multipart.maxSize" value="10737418240" /><!-- 使用Convention插件,实现约定大于配置的零配置文件风格.           特殊的Result路径在Action类中使用@Result设定. -->




使用Convention插件,实现约定大于配置的零配置文件风格.
           特殊的Result路径在Action类中使用@Result设定. 
           
 <action name="/acl/login.action" class="com.skymobi.oms.web.LoginAction">       
         <result name="success" type="dispatcher">/xx.jsp</result> 
     </action>
        
Chain Result 用来处理Action链
Dispatcher Result 用来转向页面,通常处理JSP
FreeMarker Result 处理FreeMarker模板
HttpHeader Result用来控制特殊的Http行为
Redirect Result重定向到一个URL ,被跳转的页面中丢失传递的信息,如request   
Redirect Action Result重定向到一个Action,被跳转的页面中丢失传递的信息,如request   
Stream Result向浏览器发送InputSream对象,通常用来处理文件下载
Velocity Result处理Velocity模板
XLS Result处理XML/XLST模板
PlainText Result显示原始文件内容,例如文件源代码
S2PLUGINS:Tiles Result结合Tile使用

 

0 0
原创粉丝点击