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

4.struts2结果类型和struts2通配符和动态方法1.转发方法一 默认为转发 *type:指定结果类型,默认为转发”dispatcher” /resulttype/success.jsp param:参数 *name:参数的名称为”location” 实际上,是struts2框架底层的StrutsResultSupport类的setLocat

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

今天的文章4.struts2结果类型和struts2通配符和动态方法分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/26690.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注