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

最近项目有用到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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值