Java--package,action,result元素

<?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>
	<constant name="struts.devMode" value="true"/>
	<package name="p1" extends="struts-default">
		<action name="action1" class="com.web.action.Demo1Action">
			<!-- resulst元素:配置逻辑结果视图 
					name属性:结果视图名称。与动作方法的返回值对应,当一致前往指定的jsp
					type属性:结果视图类型。不写的时候,有默认值,默认值是dispatcher 转发。
						常用取值:
							dispatcher:请求转发  默认值
							redirect:重定向
							chain:转发到另一个动作
								转发到同包(同名称空间)下的另一个动作
									<result name="success" type="chain">action2</result>
								转发到不同包(不同名称空间)下的另一个动作
									<result name="success" type="chain">
										使用的是注入的思想,在执行之重定向之前,会先获取这两个参数的值
										调用的就是setNamespace("/n2")和setActionName("action3")
										<param name="namespace">/n2</param>
										<param name="actionName">action3</param>
									</result>
							redirectAction:重定向到另一个动作
								重定向到同包(同名称空间)下的另一个动作
									<result name="success" type="redirectAction">action2</result>
								重定向不同包(不同名称空间)下的另一个动作
								<result name="success" type="redirectAction">
									使用的是注入的思想,在执行之重定向之前,会先获取这两个参数的值
									调用的就是setNamespace("/n2")和setActionName("action3")
									<param name="namespace">/n2</param>
									<param name="actionName">action3</param>
								</result>
			-->
			<result name="success" type="chain">
				<param name="namespace">/n2</param>
				<param name="actionName">action3</param>
			</result>
		</action>
		<action name="action2"><!-- 没有给定动作类,默认的是ActionSupport,没有给定动作方法,默认的是execute -->
			<result name="success" >
				<param name="location">/success.jsp</param>
			</result>
		</action>		
	</package>
	
	<package name="p2" extends="struts-default" namespace="/n2">
		<action name="action3">
			<result name="success" >/success.jsp</result>
		</action>
	</package>
	
	<!-- 全局结果视图 -->
	<package name="myDefault" extends="struts-default" abstract="true">
		<!-- 自定义结果类型 
			  在包中配置的结果视图,是只能当前包和其子包中使用
		-->
		<result-types>
			<result-type name="captcha" class="com.web.result.CAPTCHAResult"></result-type>
		</result-types>
		<global-results>
			<!-- 结果视图的查找顺序,先找当前动作类自己的,如果没有的,再去全局的结果视图中查找 -->
			<result name="success" type="captcha"> 
				<param name="width">240</param>
				<param name="height">40</param>
			</result>
		</global-results>
	</package>
	
	
	
	<!-- 自定义结果类型的配置 -->
	<package name="p3" extends="myDefault">
		
		<action name="captchaAction" class="com.web.action.CaptchaAction" >
			<!-- 写在action内部的结果视图,是只能当前动作类使用的 
			<result name="success" type="captcha">
				 配置图像的大小 
				<param name="width">240</param>
				<param name="height">40</param>
			</result>
			-->
		</action>
	</package>
</struts>

package元素

<?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>
	<!-- 设置开发模式 -->
	<constant name="struts.devMode" value="true"/>
	<!-- 
		package元素:是定义一个struts的包,它是把配置文件按照面向对象的思想来管理。分模块开发。
			name属性:指定包的名称。注意:包的名称在配置文件中唯一。
			extends属性:指定当前包的父包。它是按照面向对象的思想管理的体现。
			abstract属性:把包声明为一个抽象包。抽象包就是用来被继承的。只有没有action元素的包,才能被定义为抽象包
			namespace属性:名称空间。当指定了名称空间之后,访问路径就变成了:
							访问路径 = 名称空间+动作名称
						  当不指定该属性时,该属性有默认值,默认值是""。注意,不是"/"!!!!!!!!
						名称空间的搜索顺序:
							第一步:先去找对应的名称空间
									在指定的名称空间下找到了:就执行第二步。
									在指定的名称空间下没找到:按照名称空间结构向上追溯,一直到根名称空间,只要在任何一级找到了,执行第二步
							第二步:找动作名称
									先在指定的名称空间下,搜索对应的动作名称:找到了就执行动作类的动作方法。
									在指定的名称空间下没找到对应的动作名称:前往默认的名称空间下,找动作名称。注意:它只找动作名称。
	-->
	<package name="p1" extends="struts-default" namespace="/user">
		<!-- <action name="action1" class="com.web.action.Demo1Action" method="saveUser" >
			<result name="success">/success.jsp</result>
		</action> -->
	</package>
	
	<package name="p2" extends="struts-default">
		<action name="action2" class="com.web.action.Demo1Action" method="saveUser2" >
			<result name="success">/success.jsp</result>
		</action>
	</package>
</struts>

action元素:

<?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>
	<constant name="struts.devMode" value="true" />
	<!-- 开启动态方法调用 -->
	<constant name="struts.enable.DynamicMethodInvocation" value="true"/>
	<package name="p1" extends="struts-default">
		<!-- 修改默认动作类:我们一般不改
		<default-class-ref class="你自己的动作类"></default-class-ref> -->
	
	
		<!-- action元素:是用于定义动作名称,动作类和动作方法的映射。以及当出现不同情况时前往指定的结果视图 
				name属性:动作的名称。和jsp页面上的请求url中的名称对应起来。注意在此处不能写.action
				class属性:指定动作类
				method属性:指定要执行的动作方法
		-->
		<action name="action1" class="com.web.action.Demo1Action" method="hello">
			<result name="success">/success.jsp</result>
		</action>
		
		<!-- 第三种创建动作类方式的配置 -->
		<action name="action3" class="com.web.action.Demo3Action">
			<result name="success">/success.jsp</result>
		</action>
		
		<!-- 访问默认的动作类和动作方法的配置 
			默认的动作类是:ActionSupport的类。它是在struts-default.xml的配置文件中定义着。
		-->
		<action name="defaultAction">
			<result name="success">/success.jsp</result>
		</action>
		
		<!-- 动作方法调用的配置 
		<action name="addUser" class="com.web.action.UserAction" method="addUser">
			<result name="success">/addUser.jsp</result>
		</action>
		
		<action name="updateUser" class="com.web.action.UserAction" method="updateUser">
			<result name="success">/updateUser.jsp</result>
		</action>
		
		<action name="deleteUser" class="com.web.action.UserAction" method="deleteUser">
			<result name="success">/deleteUser.jsp</result>
		</action>
		
		<action name="findUser" class="com.web.action.UserAction" method="findUser">
			<result name="success">/findUser.jsp</result>
		</action>-->
		
		<!-- 使用通配符,配置动作方法 
			 *表示的是动作的名称,当有和动作名称相匹配的时候可以用{出现的位置}来代替
		<action name="*_*" class="com.web.action.{2}Action" method="{1}{2}">
			<result name="success">/{1}{2}.jsp</result>
		</action>
		-->
		
		<!-- 动态方法调用的配置 -->
		<action name="user" class="com.web.action.UserAction">
			<result name="success">/success.jsp</result>
		</action>
		
	</package>
</struts>

result元素:

<?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>
	<constant name="struts.devMode" value="true"/>
	<package name="p1" extends="struts-default">
		<action name="action1" class="com.web.action.Demo1Action">
			<!-- resulst元素:配置逻辑结果视图 
					name属性:结果视图名称。与动作方法的返回值对应,当一致前往指定的jsp
					type属性:结果视图类型。不写的时候,有默认值,默认值是dispatcher 转发。
						常用取值:
							dispatcher:请求转发  默认值
							redirect:重定向
							chain:转发到另一个动作
								转发到同包(同名称空间)下的另一个动作
									<result name="success" type="chain">action2</result>
								转发到不同包(不同名称空间)下的另一个动作
									<result name="success" type="chain">
										使用的是注入的思想,在执行之重定向之前,会先获取这两个参数的值
										调用的就是setNamespace("/n2")和setActionName("action3")
										<param name="namespace">/n2</param>
										<param name="actionName">action3</param>
									</result>
							redirectAction:重定向到另一个动作
								重定向到同包(同名称空间)下的另一个动作
									<result name="success" type="redirectAction">action2</result>
								重定向不同包(不同名称空间)下的另一个动作
								<result name="success" type="redirectAction">
									使用的是注入的思想,在执行之重定向之前,会先获取这两个参数的值
									调用的就是setNamespace("/n2")和setActionName("action3")
									<param name="namespace">/n2</param>
									<param name="actionName">action3</param>
								</result>
			-->
			<result name="success" type="chain">
				<param name="namespace">/n2</param>
				<param name="actionName">action3</param>
			</result>
		</action>
		<action name="action2"><!-- 没有给定动作类,默认的是ActionSupport,没有给定动作方法,默认的是execute -->
			<result name="success" >
				<param name="location">/success.jsp</param>
			</result>
		</action>		
	</package>
	
	<package name="p2" extends="struts-default" namespace="/n2">
		<action name="action3">
			<result name="success" >/success.jsp</result>
		</action>
	</package>
	
	<!-- 全局结果视图 -->
	<package name="myDefault" extends="struts-default" abstract="true">
		<!-- 自定义结果类型 
			  在包中配置的结果视图,是只能当前包和其子包中使用
		-->
		<result-types>
			<result-type name="captcha" class="com.web.result.CAPTCHAResult"></result-type>
		</result-types>
		<global-results>
			<!-- 结果视图的查找顺序,先找当前动作类自己的,如果没有的,再去全局的结果视图中查找 -->
			<result name="success" type="captcha"> 
				<param name="width">240</param>
				<param name="height">40</param>
			</result>
		</global-results>
	</package>
	
	
	
	<!-- 自定义结果类型的配置 -->
	<package name="p3" extends="myDefault">
		
		<action name="captchaAction" class="com.web.action.CaptchaAction" >
			<!-- 写在action内部的结果视图,是只能当前动作类使用的 
			<result name="success" type="captcha">
				 配置图像的大小 
				<param name="width">240</param>
				<param name="height">40</param>
			</result>
			-->
		</action>
	</package>
</struts>

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值