4.struts2结果类型和struts2通配符和动态方法

1.转发

<!-- 方法一
				默认为转发 
					* type:指定结果类型,默认为转发"dispatcher"
			-->
			 <result name="success" type="dispatcher">/resulttype/success.jsp</result> 
<!-- 方法二 :标准写法 -->
			<!-- <result name="success" type="dispatcher">
					param:参数
						* name:参数的名称为"location"
							实际上,是struts2框架底层的StrutsResultSupport类的setLocation()提供的
							public void setLocation(String location) {
						        this.location = location;
						    }
						* 所谓的参数,应该是set方法或者get方法后面跟的名称才是参数名
				<param name="location">/resulttype/success.jsp</param>
			</result> -->
*   重定向的时候,路径前面要加工程名,转发不要加工程名

2.重定向到action

<!-- 
				重定向到action:org.apache.struts2.dispatcher.ServletActionRedirectResult
					* 无论是重定向到jsp还是重定向到action,底层代码都是一样的
			 -->
			<result name="success" type="redirectAction">
				<!-- 
					param:
						* actionName:指定 “目的地” 动作的名字。指定的是struts.xml文件action标签的name属性的值
						* namespace:指定的是struts.xml文件action对应的package下的namespace属性的值
				 -->
				<param name="actionName">helloWorldAction</param>
				<param name="namespace">/primer</param>
			</result>
3.通配符

<action name="bookAction" class="cn.itcast.pattern.BookAction" method="add">
			<result name="success">/pattern/success.jsp</result>
			<result name="add">/pattern/BookAction.jsp</result>
		</action> 
*   如果不写method方法,默认是执行execute方法

*   自定义方法:

              * 由public来修饰的

             * 必须是String返回类型

             * 不能传参数

             * 方法名自定义

<!-- 以上配置可以改写如下: -->
		<!-- {2}匹配就是"*"通配符的第二个子串 -->
		<!-- {0}匹配的是"*"通配符的整个串 -->
		<!-- <action name="*_*" class="cn.itcast.pattern.{1}" method="{2}">
			<result name="success">/pattern/success.jsp</result>
			<result name="add">/pattern/{1}.jsp</result>
		</action> -->
*   是从1开始的,{1}匹配就是"*"通配符的第一个子串

4.动态方法调用

<a href="${pageContext.request.contextPath}/pattern/BookAction!add.action">图书添加</a><br>
<a href="${pageContext.request.contextPath}/pattern/BookAction!delete.action">图书删除</a><br>
*   动态方法调用:
    * 页面中请求连接:namespace+actionName+"!"+执行方法名
    * 在struts.xml文件中,不用配置method属性,而是通过页面的连接动态执行指定方法
    * 动态方法调用,不经常使用。经常使用的是通配符
    * 动态方法调用,默认是开启状态
<constant name="struts.enable.DynamicMethodInvocation" value="false"></constant>
*   关闭动态方法调用
<global-results>
			<result name="success">/pattern/successGlobal.jsp</result>
</global-results>
*   配置全局结果类型  

*   如果局部结果类型和全局结果类型,同时存在
* 局部结果类型会覆盖了全局的结果类型

局部结果类型和全局结果类型的作用范围:
* 全局结果类型:作用于整个package
* 局部结果类型:作用于某个action

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值