struts中一个正常的最普通不过的action是这样子的

 <package name="default1" namespace="/gys" extends="struts-default">
<action name="registAction" class="com.b.Regist" method="test">
<result name="regist1">/1/regist1.jsp</result>
<result name="regist2">/1/regist2.jsp</result>
</action>
</package>

使用通配符1

 <package name="default1" namespace="/gys" extends="struts-default">
<action name="*Action" class="com.b.Regist" method="test">
<result name="regist1">/1/regist1.jsp</result>
<result name="regist2">/1/regist2.jsp</result>
</action>
</package>

action中的*会和你的请求路径想匹配.符合要求的就进行下一步执行.*表示长度不为0的字符.

比如:insertAction,updateAction都是符合要求的.

使用通配符2

 <package name="default1" namespace="/gys" extends="struts-default">
<action name="*Action" class="com.b.Regist" method="{1}">
<result name="regist1">/1/regist1.jsp</result>
<result name="regist2">/1/regist2.jsp</result>
</action>
</package>

这里method="{1}"表示通配符的占位符.

占位符都是从1开始的,不是从零考试的.

使用通配符3

 <package name="default1" namespace="/gys" extends="struts-default">
<action name="*_*Action" class="com.b.{2}" method="{1}">
<result name="regist1">/1/regist1.jsp</result>
<result name="regist2">/1/regist2.jsp</result>
</action>
</package>

这里的{2}表示的就是第二个*了

使用通配符4

 <package name="default1" namespace="/gys" extends="struts-default">
<action name="*_*_*Action" class="com.b.{2}" method="{1}">
<result name="{3}">/1/{3}.jsp</result>
<result name="{3}">/1/{3}.jsp</result>
</action>
</package>

通配符还可以进行内部的占位符的匹配

使用通配符5

 <package name="default1" namespace="/gys" extends="struts-default">
<action name="registAction" class="com.b.Regist" method="test">
<result name="regist1">/1/regist1.jsp</result>
<result name="regist2">/1/regist2.jsp</result>
</action>
<action name="*Action" class="com.b.RegistT" method="{1}">
<result name="regist1">/1/regist1.jsp</result>
<result name="regist2">/1/regist2.jsp</result>
</action>
</package>

当精确匹配和模糊匹配都符合请求时,使用精确匹配

当模糊匹配都符合时,按照顺序,谁第一,就执行那个action.

默认Action:

在某些情况下,用户请求非常简单,不需要系统过多的处理,或者这些请求只是一个简单的转发.

对于只是简单的超链接请求,可以通过name为*的Action实现(最好放在最后).除此之外,struts2还允许在容器中定义一个默认的Action.

 <default-action-ref name="errorReq"></default-action-ref>
<action name="errorReq">
<result>/error.jsp</result>
</action>

这段代码必须放在package里的第一位,如果放在其他action之后,会报错.

struts2中action中的通配符的更多相关文章

  1. 在struts2的action中操作域对象(request、session)

    在struts2的Action中,操作域对象一共有三种方式: 1.ActionContext(与servelt API无关联): //相当于request ActionContext.getConte ...

  2. JavaWeb_(Struts2框架)Action中struts-default下result的各种转发类型

    此系列博文基于同一个项目已上传至github 传送门 JavaWeb_(Struts2框架)Struts创建Action的三种方式 传送门 JavaWeb_(Struts2框架)struts.xml核 ...

  3. 【struts2】action中使用通配符

    在以前的学习中,<action>元素的配置,都是用明确的配置,其name.class等属性都是一个明确的值.其实Struts2还支持class属性和method属性使用来自name属性的通 ...

  4. 9.Struts2在Action中获取request-session-application对象

    为避免与Servlet API耦合在一起,方便Action类做单元测试. Struts2对HttpServletRequest.HttpSession.ServletContext进行了封装,构造了三 ...

  5. struts2的action中获得request response session 对象

    在struts2中有两种方式可以得到这些对象 1.非IoC方式 要获得上述对象,关键Struts 2中com.opensymphony.xwork2.ActionContext类.我们可以通过它的静态 ...

  6. struts2对action中的方法进行输入校验---xml配置方式(3)

    上面两篇文章已经介绍了通过编码java代码的方式实现action方法校验,这里我们介绍第二种方式:xml配置文件 首先我们来看一个样例: ValidateAction.java: package co ...

  7. struts2对action中的方法进行输入校验(2)

    struts2输入校验流程: 1.类型转换器对请求參数运行类型转换,并把转换后的值赋给aciton中的属性 2.假设在运行类型转换的过程中出现异常,系统会将异常信息保存到ActionContext, ...

  8. jap页面获取struts2中action中变量的值

    在jsp页面中可以通过ONGL表达式获取struts2中action处理后的变量的值,这是因为每一个action在初始化后都会放到strackcontext中,可以通过ONGL表达式取到值. 注意要在 ...

  9. 关于在Struts2的Action中使用domain模型接收参数的问题

    最近在搭建一个最新的ssh2框架,今天在调试的时候,发现了一个以前一直没有注意过的问题,我在Action中使用域模型的方式去接收jsp画面中的参数的时候,发现参数总是接收不完,头一次遇到这种问题,现在 ...

随机推荐

  1. SSDB

    一个高性能的支持丰富数据结构的 NoSQL 数据库, 用于替代 Redis. 特性 替代 Redis 数据库, Redis 的 100 倍容量 LevelDB 网络支持, 使用 C/C++ 开发 Re ...

  2. JAVA线程池ThreadPoolExecutor-转

    首先是构造函数签名如下: public ThreadPoolExecutor(int corePoolSize,int maximumPoolSize,long keepAliveTime,TimeU ...

  3. js下的sleep实现

    function sleep(d){ for(var t = Date.now();Date.now() - t <= d;); } sleep(5000); //当前方法暂停5秒

  4. ORACLE 表函数实现

    1.创建表对象类型. 在Oracle中想要返回表对象,必须自定义一个表类型,如下所示: create or replace type t_table is table of number; 上面的类型 ...

  5. SQL SERVER 生成ORACLE建表脚本

    /****** Object: StoredProcedure [dbo].[GET_TableScript_ORACLE] Script Date: 06/15/2012 13:07:16 **** ...

  6. hadoop(二):hdfs HA原理及安装

    早期的hadoop版本,NN是HDFS集群的单点故障点,每一个集群只有一个NN,如果这个机器或进程不可用,整个集群就无法使用.为了解决这个问题,出现了一堆针对HDFS HA的解决方案(如:Linux ...

  7. VBA実績表

    VBA 插入一行保留样式 VBA 打开一个string指定的文件 VBA 按照文件类型名称打开一个文件 VBA excel中表示列的字母换成数字

  8. select case when

    SELECT CASE WHEN dc.defect_code_name IS NOT NULL THEN dc.defect_code_name WHEN sf.second_defect_leve ...

  9. for循环内 执行$ajax(){}

    真是郁闷,在for 循环里添加了ajax异步传输之后,for循环是单线程处理,就是里面执行的是ajax,也不异步处理数据.而是执行完for循环的次数后,一起把ajax的数据处理掉. 解决办法.分开吧! ...

  10. 剑指offer系列39-----矩阵中的路径

    [题目]请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径. * 路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向上,向下移动一个格子. * 如果一条路径经 ...