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的配置的更多相关文章

  1. Struts2中动态方法的调用

    Struts2中动态方法调用就是为了解决一个action对应多个请求的处理,以免action太多. 主要有一下三种方法:指定method属性.感叹号方式和通配符方式.推荐使用第三种方式. 1.指定me ...

  2. struts2之动态方法调用(转)

    转自:http://blog.csdn.net/longwentao/article/details/6940289 当我们访问一个Action时,默认是访问execute()方法,但当在一个Acti ...

  3. 分享知识-快乐自己:Struts2(动态方法、动态结果、通配符、方法内部跳转、action跳转、OGNL 的使用及注意事项)

    这里主要以案例演示:涵盖以下知识点 1.动态方法调用:使用关键 符号 ! 进行操作   例如:/命名空间 ! 方法名 2.动态结果集:就是说,通过后台返回的结果 ${} 获取,重定向到符合预期的页面. ...

  4. 第三篇——Struts2的动态方法调用

    Struts2动态方法调用 默认方式:默认执行方法中的execute方法,若指定类中没有该方法,默认返回success: method方式:执行method属性中定义的方法,没有该方法,页面报错: 通 ...

  5. struts2的动态方法调用(DMI)和通配符映射

    动态方法调用   1.Struts2默认关闭DMI功能,需要使用需要手动打开,配置常量 struts.enable.DynamicMethodInvocation = true 2.使用“!”方法,即 ...

  6. struts2的动态方法配置

    动态方法调用配置 <package name="test" extends="struts-default"> <aciton name=&q ...

  7. Struts2之动态方法调用

    1.感叹号 前台页面 <%@ page language="java" contentType="text/html; charset=UTF-8" pa ...

  8. struts2.5动态方法绑定问题

    <global-allowed-methods>regex:.*</global-allowed-methods> <?xml version="1.0&quo ...

  9. struts2动态方法

    动态方法调用 在Struts2中动态方法调用有三种方式,动态方法调用就是为了解决一个Action对应多个请求的处理,以免Action太多 第一种方式:指定method属性 这种方式我们前面已经用到过, ...

随机推荐

  1. 【转载】win7mysql5.7.18免安装配置教程

    闲着没事,装个mysql试试,小编以前都是用的linux,感觉mysql安装就是傻瓜式操作啊,第一次在windows系统上装,感觉出了很多问题,现在将整个过程分享给大家,希望大家在安装的时候少走弯路. ...

  2. 我为什么不用Django而用Flask?

    前言 对于初学者来说,找到一个好的框架来学习或者项目开发都是非常有必要的,而当你有一定开发经验后,你应该选择适合当前业务需要的框架.我这里并不想探讨哪个框架好哪个不好,这个永恒的话题就跟探讨“世界上哪 ...

  3. Aligning Plots in a Column作图列对齐

    Plot[Sin[x], {x, 0, Pi}] Plot[10000 Sin[x], {x, 0, Pi}] 直接作图左边无法对齐,影响图的美观.可以使用左边界空格实现列对齐,代码如下: optio ...

  4. android,Exoplayer实现视频播放器

    bundle配置: implementation 'com.google.android.exoplayer:exoplayer-core:2.8.1'implementation 'com.goog ...

  5. QTableview 只显示横向线

    #include <QApplication> #include <QTableWidget> #include <QPainter> #include <Q ...

  6. Daily paper -Science 2006: Experimental Study of Inequality and Unpredictability in an Artificial Cultural Market (探究群体行为对商品销量的影响)

    论文:      Experimental Study of Inequality and Unpredictability in an Artificial Cultural Market 发表期刊 ...

  7. php导出cvs xls xlsx

    有两种方法,一种是更改输出头部,一种是使用phpexcel类,很显然前者更方便,下面给出一个demo方法导出cvs/** * 导出日志 */public function excel() { setl ...

  8. IOS HTML+CSS+JS 总结

    一.HTML + CSS 1.能看到标签的结构* 父子关系<p>    <span>123</span></p> * 属性<img src=&qu ...

  9. Hive UDF 用户自定义函数 编程及使用

    首先创建工程编写UDF 代码,示例如下: 1. 新建Maven项目 udf 本机Hadoop版本为2.7.7, Hive版本为1.2.2,所以选择对应版本的jar ,其它版本也不影响编译. 2. po ...

  10. [转]Qt中ui文件的使用

    用designer设计的*.ui文件可以通过uic工具转换为*.h文件(在编译时也会自动生成这样一个ui_*.h文件),有了这个.h文件就可以直接按照纯C++的方式对其中的类进行调用.ui文件的使用就 ...