struts第四结

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了struts第四结相关的知识,希望对你有一定的参考价值。

一、result结果类型应用
1.简单转发到页面dispatcher(默认值)
2.简单的转发到动作chain
	方式一:
		<result type="chain" name="success">chainAction</result>
		方式二:
		<result type="chain" name="success">
			<param name="actionName">chainAction</param>
			<!--name对应的chain的处理器中的setActionName()方法-->
			
		</result>
			
		注意:如果要转向的是在另外一个名称空间的动作,那么只能使用方式二
		<package name="dispacherTest" namespace="/dispacherT" extends="struts-default">
		     <action name="dispacherT">
			<result type="dispatcher" name="success">/dispatcher.jsp</result>
			
		     </action>
		</package>
		<package name="chainTest2" namespace="/chainT2" extends="struts-default">
			<action name="chainT">
				<result type="chain" name="success">
					<param name="namespace">/dispacherT</param>
					<!-- name值不能随意书写-->
					<param name="actionName">dispacherT</param>
					
				</result>
			</action>
		</package>
3.简单重定向
	<action name="redirect">
		<result type="redirect">/index.jsp</result>
		
	</action>
4.传值的重定向(注意中文要转码)
	<action name="redirect1"  class="cn.xinhua.action.RedirectDemo" method="add">
		<result type="redirect">/redirect.jsp?info=${infomation}</result>
		<!--"${infomation}"在对应的action中有相应的成员变量,"info"可以在jsp页面                  中用el表达式获取-->
		
	</action>
5.重定向到action 
	<action name="redirect2">
		<result type="redirectAction">redirect1</result>
		
	</action>
6.跨包重定向到action 
	<package name="xinhua2" namespace="/test1" extends="struts-default">	
		<action name="redirect">
			<result type="redirectAction">
				<param name="namespace">/test</param>
				<param name="actionName">redirect1</param>
				
			</result>
		</action>
	</package> 
7.显示源码
	<action name="redirect3">
		<result type="plainText">/plaintext.jsp</result>
		
	</action>
	<!-- 在源码中有中文的情况 -->
	<action name="redirect4">
		<result type="plainText">
			<param name="location">/plaintext.jsp</param>
			<param name="charSet">utf-8</param>
			
		</result>
	</action>
二、定义全局视图
1.在同一包中定义全局视图
		<global-results>
			<result name="success">/WEB-INF/page/global.jsp</result>
			
		</global-results>
		<action name="global"  class="cn.java.action.RedirectDemo" method="add">	
		</action>
2.在不同的包中定义全局视图
	<package name="all"  extends="struts-default">
		<global-results>
			<result name="success">/WEB-INF/page/global.jsp</result>
			
		</global-results>
	</package>
	<package name="xinhua" namespace="/test" extends="all">
		 <action name="global"  class="cn.java.action.RedirectDemo" method="add">
		 	
		</action>
	</package>
三.动态方法调用:
	1.不指定method属性
		<s:form action="action名称!方法名称.action">
		
	2.指定method属性
	3.使用通配符
		<action name="hellowrld_*" class="cn.java.HelloWordAction" method="{1}">
			<result name="success">{1}.jsp</result>
		</action>

		访问路径如:localhost:8080/M-Struts/test/hellowrld_method.action
四.给action注入值
	<action name="implant" class="cn.java.action.Implant" method="test">
		<param name="info">mazheng</param>
		<!--info在对应的action类中有相应的成员变量-->
		<result name="success">/WEB-INF/page/implant.jsp</result>
	</action>


以上是关于struts第四结的主要内容,如果未能解决你的问题,请参考以下文章

[struts2学习笔记] 第四节 学着使用struts 2的tag标签

第四章 Struts2深入

第四节 Struts2 - OGNL详解

[CVE-2013-2251] Apache Struts 2远程代码执行漏洞复现(第四弹)

碎片化 | 第四阶段-40-Struts组件分类讲解-视频

碎片化 | 第四阶段-38-Struts2登录session对象封装-视频