首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

学习运用通配符(转)

2012-11-18 
学习使用通配符(转)7.学习使用通配符在某些情况下,用户请求非常的简单,不需要系统过多的处理,或者这些请求

学习使用通配符(转)

7.学习使用通配符

在某些情况下,用户请求非常的简单,不需要系统过多的处理,或者这些请求只是一个简单的转发功能,这个时候做很多的Action和配置更多的struts.xml就会让使得阅读和书写变成了苦力工作。Struts的开发团队当然不想让他的用户把精力放到这上面,所以他们发明一个个叫通配符(我也不知道是不是他们发明的,反正我以前没见过)的东西。下面我们就来学习一下通配符。

通配符用下面4种常用的用法,一一道来

?

1:动态改变调用的方法

struts.xml 代码:

<action name="*Action" class = "action.MyAction" method="{1}">

??? ??? <result>/Main.jsp</result>

</action>

解释:

*号 表示任意

{1}表示前面通配符中的第一个*号

?

这样定义的Action就不止是一个Action了, 而是一系列的Action,

凡是以Action结尾的都会进入这里,比如aaAction 、bbAction、ccAction

在后面的method代表调用的方法 如果请求路径是aaAction.action 则调用MyAction中的aa()方法.

?

2.动态改变Action

struts.xml 代码

<action name="*Emp2000c" class = "action.emp2000c.{1}Emp2000c">

??? ??? <result>/Main.jsp</result>

</action>

解释:

凡是以Emp2000c结尾的Action都会进入这里

如果访问的路径是addEmp2000c.action则会进入此action并调用

action.emp2000c. addEmp2000c的execute()方法进行处理

?

3: 动态改变Action和调用方法

Struts.xml代码

<action name="*__*" class = "action.{1}" method="{2}">

??? ??? <result>/Main.jsp</result>

</action>

解释:

凡是包含 __ 的Action都会进入这里

如果访问的是Bom3000c__add.action 则会进入此Action并调用

action.Bom3000c中的add()方法进行处理

?

这样一来 就能减少很多重复的代码了,对于只做转向的action 我们可以这样写:

Struts.xml代码

<action name="*">

??? <result >/{1}.jsp</result>

?</action>

?

因为他没有定义class处理的实例所以呢他调用了默认的ActionSupport中的execute来返回success的字符串,即该Action总是直接返回result中指定的JSP资源,JSP资源使用了表达式来生成资源名。所以当请求为A1.action时直接转向了A1.jsp页面, 当请求为A2.action时直接转向了A2.jsp页面。

热点排行