转载自:http://blog.csdn.net/huizhang212/article/details/4033305
对于每一个请求都去配置一个Action,是一件麻烦的事,于是就会想到用DispatchAction来解决这个问题。更好的是如果我们有一个良好的命名习惯,就可以利用Struts提供的模式匹配去进一步减少配置文件中配置代码。
下面我就详细介绍以下:
一定要注意的是要有一个好的命名规则,约定如下命名规则。
- 添加:add
- 修改:modify
- 删除:del
- 在WebRoot下创建子目录user,将对于user的相关的jsp文件放在其中
以下给出简单实例,在index.jsp中有三个超链接,点击进入相应的成功页面,统一有UserAction处理转向。
index.jsp页面代码如下。
<a href="user/add.do?command=add">添加用户成功</a><br>
<a href="user/modify.do?command=modify">修改用户成功</a><br>
<a href="user/del.do?command=del">删除用户成功</a><br>
UserAction中给出add,modfy,del方法,这里要了解DispatchAction的使用,不再介绍。
下面就是struts-config.xml的配置了,如下。
<action path="/user/*"
type="com.huizhang212.struts.UserAction"
parameter="command"
>
<forward name="success" path="/user/{1}_success.jsp" />
</action>
如果不使用Struts模式匹配的话,就要给每一个command配置一个 <forward>,上面使用了Struts模式匹配,那么就只配一个<forward>就可以了。
<forward>中的path="/user/{1}_success.jsp" 的{1}是用<action>中 path="/user/*" 的"*"所表示的字符填充的,例如当点击index.jsp页面的“添加用户成功”时,<action>中 path="/user/add",那么<forward>中的path="/user/add_success.jsp"。
另外<forward>也可以配成path="/{0}_success.jsp" ,这里的{0}是用<action>中 path所表示的字符填充的。
养成一个好的命名习惯,可以让我们省去很多繁琐的配置,更重要的是,拥有统一良好命名规则的代码会给人整齐划一,清晰明了的感觉。