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. P1010 笨小猴【tyvj】

    /*=========================================================== P1010 笨小猴 描述 Description 笨小猴的词汇量很小,所以每 ...

  2. Postman接口测试初探

    Postman接口测试 有两种安装方式: 1)Chrome插件(https://www.getpostman.com/).安装完成后,它会在chrome的应用中,如下图 2)通过下载Native ap ...

  3. SwiftyJSON 中文介绍

    SwiftyJSON makes it easy to deal with JSON data in Swift. Why is the typical JSON handling in Swift ...

  4. javascript模块化编程(AMD规范的加载器)

    关于AMD规范可以参考阮一峰的这篇文章Javascript模块化编程(二):AMD规范 简单来说,AMD规范就是异步方式加载模块的一种方式,避免因为模块加载过慢而导致浏览器“假死”. 先贴一个学习地址 ...

  5. 【redis】 linux 下redis 集群环境搭建

    Redis集群 (要让集群正常工作至少需要3个主节点,在这里我们要创建6个redis节点,其中三个为主节点,三个为从节点,对应的redis节点的ip和端口对应关系如下) 127.0.0.1:63791 ...

  6. openstack(liberty): devstack之screen

    在devstack的stack.sh文件中,可以看到所有配置的service启动方式有两种,根据是否USE_SCREEN进行是在screen window中启动,还是直接起. 默认情况,USE_SCR ...

  7. 微信浏览器里location.reload问题

    微信浏览器里location.reload问题会导致有时候post数据丢失.建议不要用此方式,尽量ajax方式获取或不要为了获取新的UI而刷新页面 2015-12-26 00:51:34array ( ...

  8. Hibernate3回顾-1-部署

    web备份版本,详见doc版本. 一.背景(部署简单回顾) 我们知道,一个Hibernate快速上手的简单流程是这样. 1引入对应jar包. 中间涉及log4的jar包和配置,略. 2 实体类 pac ...

  9. 【linux】Cache和Buffer的区别

  10. 关于windows下c/c++的rand()的一个测试

    ,,,}; ,-,,}; ,y=; ;t<<<;t++){ ; x+=xs[d];y+=ys[d]; 在(x,y)绘制一个点; } 根据rand()%4的值决定点的移动方向,生成图像 ...