下载此示例– Struts-Wildcards-Example.zip
只要您的Struts项目遵循某种常规文件结构,Struts通配符就可以帮助减少struts-config.xml文件中的重复。 例如,在用户模块中,要实现CRUD功能,您的struts-config.xml可能如下所示
1.没有通配符
您需要为每个列表创建四个动作映射,添加,删除和更新功能,以及大量重复。
struts-config.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 1.3//EN"
"http://jakarta.apache.org/struts/dtds/struts-config_1_3.dtd">
<struts-config>
<action-mappings>
<action
path="/ListUserAction"
type="com.mkyong.common.action.UserAction"
parameter="ListUser"
>
<forward name="success" path="/pages/ListUser.jsp"/>
</action>
<action
path="/AddUserAction"
type="com.mkyong.common.action.UserAction"
parameter="AddUser"
>
<forward name="success" path="/pages/AddUser.jsp"/>
</action>
<action
path="/EditUserAction"
type="com.mkyong.common.action.UserAction"
parameter="EditUser"
>
<forward name="success" path="/pages/EditUser.jsp"/>
</action>
<action
path="/DeleteUserAction"
type="com.mkyong.common.action.UserAction"
parameter="DeleteUser"
>
<forward name="success" path="/pages/DeleteUser.jsp"/>
</action>
</action-mappings>
</struts-config>
2.带通配符
使用Struts通配符功能,您的struts-config.xml可以简化为一个动作映射。
struts-config.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 1.3//EN"
"http://jakarta.apache.org/struts/dtds/struts-config_1_3.dtd">
<struts-config>
<action-mappings>
<action
path="/*UserAction"
type="com.mkyong.common.action.UserAction"
parameter="{1}User"
>
<forward name="success" path="/pages/{1}User.jsp"/>
</action>
</action-mappings>
</struts-config>
让我们看一个用例,尝试通过http:// localhost:8080 / StrutsExample / EditUserAction.do进行访问 。 “ EditUserAction.do ”将匹配“ / * UserAction ”模式,并且*匹配的字符串“ Edit ”由{1}表示,以备后用。
在上述情况下,通配符操作映射将从
<action
path="/*UserAction"
type="com.mkyong.common.action.UserAction"
parameter="{1}User"
>
<forward name="success" path="/pages/{1}User.jsp"/>
</action>
至
<action
path="/EditUserAction"
type="com.mkyong.common.action.UserAction"
parameter="EditUser"
>
<forward name="success" path="/pages/EditUser.jsp"/>
</action>
结论
两个struts-config.xml示例都具有相同的功能,但是通配符支持的重复次数较少。 但是,请不要在项目中过度使用此通配符功能,因为它比常规声明更难管理。
标签: Struts