码迷,mamicode.com
首页 > 其他好文 > 详细

Struts2的动态方法,及result跳转方式,全局结果以及默认的action的配置

时间:2018-12-02 13:36:20      阅读:169      评论:0      收藏:0      [点我收藏+]

标签:action   使用   感叹号   全局   不同   rac   png   strong   patch   

Action动态方法的调用

  首先我们需要在struts.xml中去配置一个常量值如下

技术分享图片

那么去哪找呢?找到Struts-core.jar并打开

技术分享图片

method属性

<action name="login" class="cn.ssh.ch08.UserAction" method="lgoin">
   <result name="success">/success.jsp</result>
   <result name="fail">/fail.jsp</result>
</action>
<action name="register" class="cn.ssh.ch08.UserAction" method="register">
   <result name="success">/success.jsp</result>
   <result name="fail">/fail.jsp</result>
</action>

  可以看到配置文件中分别定义了两个action元素,每个action的name属性都不同,但是类的引用却是相同的也就是说,如果用户的请求是login.action,

那么就会调用类中的login()方法,如果是register.action则会调用register()方法.

注意:Struts2在根据action元素的method属性查找执行方法时有两种途径

  1. 查找与method属性值完全一致的方法
  2. 查找与doMethod()形式的方法

如login()方法,找不到此方法时会去找doLogin()方法

action中感叹号的使用

  使用语法:actionName!methodName 

技术分享图片

因此请求只需要这样写即可如下

技术分享图片

而配置文件中就不在需要method属性了

技术分享图片

action中通配符的使用

<!-- {1} 相当于占位符,在每个用到{1} 的地方都匹配了前端请求的*User中*号的内容 -->
<action name="*User" class="cn.myweb.action.UserAction" method="{1}">
    <result name="{1}" >{1}.jsp</result>
</action>

 

比如我的请求是 loginUser.action那么login就会被填充到 {1}中,也就是跳转页面是login.jsp,方法是login,结果是login

此外有了{1}那么也是可以有{2}的.这里就不多讲了

result跳转方式的配置

  常用的三种如下:

  1. dispatcher:Action默认的结果类型,采用转发的形式请求指定的视图资源,请求中的数据信息不会丢失.
  2. redirect:采用重定向的方式请求指定的视图资源.数据会丢失
  3. redirectAction:重定向的方式请求一个新的Action,数据会丢失
<action name="register" class="cn.ssh.ch08.UserAction" method="register">
   <result name="success" type="redirectAction">success</result>
   <result name="fail">/fail.jsp</result>
</action>

如上成功之后会去中找名为success的action

设置默认action

技术分享图片

当出现错误请求时则会跳转到index页面

设置全局结果

技术分享图片

 当结果为 error时则跳入错误页面

 注意action标签不能放在global标签前面

 

Struts2的动态方法,及result跳转方式,全局结果以及默认的action的配置

标签:action   使用   感叹号   全局   不同   rac   png   strong   patch   

原文地址:https://www.cnblogs.com/hfx123/p/10052619.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!