动态方法调用和使用通配符实现类似struts1.x的dispatchAction功能
2012-10-05 21:33
886 查看
J2EE开发各类资源下载清单, 史上最全IT资源,个人收藏总结!
Struts1中通过继承DispatchAction类和struts-config.xml中配置parameter参数调用Action中的任意方法,那么Struts2也提供了类似的功能,主要有两种方式:1. 动态方法调用
如果Action中存在多个方法时,我们可以使用"namespace+action名+!+方法名"调用指定方法。如http://localhost:8080/Struts2_03/user/userOperator!delete.action。但是struts2官方并不推荐这种方式,他推荐使用通配符的方式实现类似struts1.x的dispatchAction的功能。
默认情况下, Struts 的动态方法调用处于激活状态, 若想禁用该功能, 则可以在 struts.xml 文件中添加如下 constant 元素:
<constant name="struts.enable.DynamicMethodInvocation" value="false"/>
UserAction.java
struts-user.xml
当浏览器输入:http://localhost:8080/Struts2_03/user/userOperator(不写方法的话,默认调用method属性的方法) , .../user/userOperator!add,
.../user/userOperator!add.action
当浏览器输入:http://localhost:8080/Struts2_03/user/userOperator!delete, .../user/userOperator!delete.action
2. 通配符调用Action中的方法
可以在<action>的name属性中使用"*"通配符,然后在<action>class,method属性及<result>的name属性和<result>的值中通过"{通配符索引}"引用通配符"*"的值,如:
通配符映射
(1)一个 Web 应用可能有成百上千个 action 声明. 可以利用 struts 提供的通配符映射机制把多个彼此相似的映射关系简化为一个映射关系
(2)通配符映射规则
若找到多个匹配, 没有通配符的那个将胜出
若指定的动作不存在, Struts 将会尝试把这个 URI 与任何一个包含着通配符 * 的动作名及进行匹配
若 Struts 找到的带有通配符的匹配不止一个, 最后一个匹配将胜出
被通配符匹配到的 URI 字符串的子串可以用 {1}, {2} 来引用. {1} 匹配第一个子串, {2} 匹配第二个子串,{0} 匹配整个 URI
* 可以匹配零个或多个字符, 但不包括 / 字符. 如果想把 / 字符包括在内, 需要使用 **. 如果需要对某个字符进行转义, 需要使用 \.
通配符的使用
struts-product.xml
ProductAction.java
浏览器上输入:http://localhost:8080/Struts2_03/product/ope_Product_delete , .../product/ope_Product_delete.action
浏览器上输入:http://localhost:8080/Struts2_03/product/ope_Product_add , .../product/ope_Product_add.action
转发时,请注明来源:动态方法调用和使用通配符调用Action中方法
相关文章推荐
- struts2.5 使用感叹号和通配符实现动态方法调用无效的问题及解决!
- struts2.5 使用感叹号和通配符实现动态方法调用无效的问题及解决!
- Struts2.5使用通配符的方式实现动态方法调用报错
- Struts2.5使用通配符的方式实现动态方法调用报错
- struts中动态方法调用使用通配符
- Struts2.5使用感叹号实现动态方法调用无效的解决办法
- struts--动态方法调用和使用通配符(8)
- Struts2.5动态方法调用action和使用通配符访问action
- 解决Struts2.5不能使用通配符方式动态方法调用
- struts中3种情况通配符的使用方法 及 动态方法调用
- action动态方法调用和使用通配符定义action
- struts2.5感叹号和通配符实现动态方法
- Vue中使用Froala Editor时,外部方法调用html.insert()插入内容到光标最后停留位置功能实现
- 第11章 动态方法调用和使用通配符定义action
- webwork中类似struts的DispatchAction的使用方法。
- Struts2学习笔记(二) 使用通配符动态调用方法
- Struts2学习笔记(二) 使用通配符动态调用方法
- struts2.5+框架使用通配符与动态方法
- main函数中通过使用Person类和AddressBook类,创建对象、调用方法,实现以下8个功能
- Vue中使用Froala Editor时,外部方法调用html.insert()插入内容到光标最后停留位置功能实现