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

来源:互联网 发布:淘宝开店起步 编辑:程序博客网 时间:2024/05/20 05:03

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

0 0
原创粉丝点击