1、一个Web 应用可能有成百上千个
action 声明.
可以利用 struts
提供的通配符映射机制把多个彼此相似的映射关系简化为一个映射关系
2、通配符映射规则
–若找到多个匹配,
没有通配符的那个将胜出
–若指定的动作不存在, Struts
将会尝试把这个 URI
与任何一个包含着通配符 * 的动作名及进行匹配 
–被通配符匹配到的URI
字符串的子串可以用 {1}, {2}
来引用. {1} 匹配第一个子串, {2}
匹配第二个子串…
–{0}匹配整个 URI
–若 Struts
找到的带有通配符的匹配不止一个,
则按先后顺序进行匹配
–* 可以匹配零个或多个字符,
但不包括 / 字符.
如果想把 / 字符包括在内,
需要使用 **.
如果需要对某个字符进行转义,
需要使用 \.

示例1:

包声明:

<package name="app1" namespace="/app1" extends="struts-default">
<action name="*_add" class="com.elgin.action.UserAction" method="add"> <result >/jsp/user.jsp</result> </action>
</package>

上面的包声明可以由正确的命名空间和_add
组成的 URI
来调用, 包括:

/app1/book_add.action

/app1/student_add.action

/app1/_add.action

/app1/whatever_add.action

示例2:

<package name="app2" namespace="/app2" extends="struts-default">
<action name="Book_add" class="com.elgin.action.Book" method="add"> <result>/jsp/Book.jsp</result> </action>
<action name="Student_add" class="com.elgin.action.Student" method="add"> <result>/jsp/Student.jsp</result> </action>
</package>
<!-- 上述配置可改写为如下形式 -->
<package name="app2" namespace="/app2" extends="struts-default">
<action name="*_add" class="com.elgin.action.{1}" method="add"> <result >/jsp/{1}.jsp</result> </action>
</package>

示例3:

<package name="app3" namespace="/app3" extends="struts-default">
<action name="Book_add" class="com.elgin.action.Book" method="add"> <result>/jsp/Book.jsp</result> </action>
<action name="Book_delete" class="com.elgin.action.Book" method="delete"> <result>/jsp/Book.jsp</result> </action>
<action name="Student_add" class="com.elgin.action.Student" method="add"> <result>/jsp/Student.jsp</result> </action>
<action name="Student_delete" class="com.elgin.action.Student" method="delete"> <result>/jsp/Student.jsp</result> </action>
</package>
<!-- 上述配置可改写为如下形式 -->
<package name="app2" namespace="/app2" extends="struts-default">
<action name="*_*" class="com.elgin.action.{1}" method="{2}"> <result >/jsp/{1}.jsp</result> </action>
</package>

示例4:

<!-- 通配符映射 -->
<package name="user" namespace="/" extends="struts-default"> <action name="UserAction-*" class="com.elgin.action.UserAction" method="{1}">
<result name="{1}-success">/success.jsp</result>
</action> </package>


Struts2通配符映射的更多相关文章

  1. [原创]java WEB学习笔记58:Struts2学习之路---Result 详解 type属性,通配符映射

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

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

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

  3. struts2之通配符映射

    系统有n多个请求时候,不可能以一个action对应一个映射.可以用通配符映射将成百上千请求简化成一个通用映射. 通配符映射规则:1.若找到多个匹配,没有通配符的将胜出. 2.若指定的动作不存在,str ...

  4. Struts2 - action通配符映射

    一个 Web 应用可能有成百上千个 action 声明. 可以利用 struts 提供的通配符映射机制把多个彼此相似的映射关系简化为一个映射关系 通配符映射规则 –      若找到多个匹配, 没有通 ...

  5. Struts2学习第七课 通配符映射

    一个WEB应用可能有长百上千个action声明,可以利用struts提供的通配符映射机制吧多个彼此相识的映射关系简化为一个映射关系. 通配符映射规则: --若找到多个匹配,没有通配符的那个将胜出(精确 ...

  6. Struts(七):action配置文件之通配符映射

    通配符映射:一个Web应用可能有成百上千个action声明,可以使用struts提供的通配符映射机制把多个彼此相似的映射关系简化为一个映射关系. 通配符映射规则: 若找到多个匹配,没有通配符的那个将胜 ...

  7. Url通配符映射

    原文:http://www.cnblogs.com/liukemng/p/3726897.ht 1.URL路径映射 1.1.对一个action配置多个URL映射: 我们把上一篇中的HelloWorld ...

  8. struts2——通配符

    struts2的配置文件是 struts.xml.. 在这个配置文件里面可以使用通配符..其中的好处就是,大大减少了配置文件的内容..当然,相应付出的代价是可读性.. 使用通配符的原则是 约定高于配置 ...

  9. Struts2——通配符,Action Method_DMI

    Action wildcard 通配符(配置量降到最低) 使用通配符,就是为了配置简便,但是一定遵守“约定优于配置”原则,约定就是做项目之前最好事先与项目组的人或是自己规定好命名规则. 多个*  {1 ...

随机推荐

  1. Java泛型中的extends和super关键字

    理解List<? extends T> list, T key, Comparator<? super T> c 这些一般用在方法形参类型上,用于接受泛型对象. 1.List& ...

  2. C#实现GDI+基本图的缩放、拖拽、移动

    C#实现GDI+基本图的缩放.拖拽.移动示例代码如下: using System;using System.Collections.Generic;using System.ComponentMode ...

  3. 转 intent常用功能

    1.从google搜索内容Intent intent = new Intent();intent.setAction(Intent.ACTION_WEB_SEARCH);intent.putExtra ...

  4. 面试题_103_to_124_关于 OOP 和设计模式的面试题

    这部分包含 Java 面试过程中关于 SOLID 的设计原则,OOP 基础,如类,对象,接口,继承,多态,封装,抽象以及更高级的一些概念,如组合.聚合及关联.也包含了 GOF 设计模式的问题. 103 ...

  5. UVa 1647 (递推) Computer Transformation

    题意: 有一个01串,每一步都会将所有的0变为10,将所有的1变为01,串最开始为1. 求第n步之后,00的个数 分析: 刚开始想的时候还是比较乱的,我还纠结了一下000中算是有1个00还是2个00 ...

  6. 用RSA加密实现Web登录密码加密传输

    通常我们做一个Web应用程序的时候都需要登录,登录就要输入用户名和登录密码,并且,用户名和登录密码都是明文传输的,这样就有可能在中途被别人拦截,尤其是在网吧等场合. 这里顺带一个小插曲,我以前有家公司 ...

  7. 【MySQL for Mac】终极解决——MySQL在Mac的字符集设置

    这个问题烦恼一天了,现在终于得以解决.分享给大家 首先贴出来,亲测不可行的博客连接: http://www.2cto.com/database/201305/215563.html http://bl ...

  8. Delphi打开窗体时报"Corrupt Portfolio Stream"

      今天在打开一个Delphi窗体时报了这么一个错误: Corrupt Portfolio Stream 查了一下,主要是由于Delphi窗体的*.ddp文件损坏引起的. 解决方法: 删除.ddp 文 ...

  9. 解决WCF大数据量传输 ,System.Net.Sockets.SocketException: 远程主机强迫关闭了一个现有的连接

    开发中所用的数据需要通过WCF进行数据传输,结果就遇到了WCF大量传输问题 也就是提示System.Net.Sockets.SocketException: 远程主机强迫关闭了一个现有的连接 网上解决 ...

  10. codeforces 687B - Remainders Game 数学相关(互质中国剩余定理)

    题意:给你x%ci=bi(x未知),是否能确定x%k的值(k已知) ——数学相关知识: 首先:我们知道一些事情,对于k,假设有ci%k==0,那么一定能确定x%k的值,比如k=5和ci=20,知道x% ...