如struts中配有如下几个action,ManagerUserAction中有与之对应的方法
<
action
name
="addUser"
class
="com.netshuai.action.ManagerUserAction"
method
="add"
>
< result name ="success" > /addUser.jsp </ result >
</ action >
< action name ="delUser" class ="com.netshuai.action.ManagerUserAction" method ="del" >
< result name ="success" > /delUser.jsp </ result >
</ action >
< action name ="updateUser" class ="com.netshuai.action.ManagerUserAction" method ="update" >
< result name ="success" > /updateUser.jsp </ result >
</ action >
< result name ="success" > /addUser.jsp </ result >
</ action >
< action name ="delUser" class ="com.netshuai.action.ManagerUserAction" method ="del" >
< result name ="success" > /delUser.jsp </ result >
</ action >
< action name ="updateUser" class ="com.netshuai.action.ManagerUserAction" method ="update" >
< result name ="success" > /updateUser.jsp </ result >
</ action >
如果使用通配符,可以省略写成一个action
<
action
name
="*User"
class
="com.netshuai.action.ManagerUserAction"
method
="{1}"
>
< result name ="success" > /{1}User.jsp </ result >
</ action >
其中,*为通配符,{1}为*所替换的内容,如用户访问的是addUser.action,则*就被自动替换为add,{1}处也自动使用add替换。
< result name ="success" > /{1}User.jsp </ result >
</ action >
若开发时使用统一的命名规范,则所有action可使用类似如下的一条替换即可
<
action
name
="*_*"
class
="com.netshuai.action.{1}Action"
method
="{2}"
>
< result name ="success" > /{2}_{1}Success.jsp </ result >
</ action >
如上所示,所有文件都采用统一的命名规范,第一个*为分类名称,第二个*为操作名,{1}和{2}分别代表第一个和第二个*的替换值,所有action实现类都命名为分类名称+Action。
< result name ="success" > /{2}_{1}Success.jsp </ result >
</ action >
如分类名称为User,操作名为add,则访问的action名为User_add.action,action实现类名为UserAction,返回页面的名为add_UserSuccess.jsp
另:{0}代表显示所有通配符内容,如 < result name ="success" > /{2}_{1}Success.jsp </ result > 改为 < result name ="success" > /{0}Success.jsp </ result >,则返回的名为User_addSuccess.jsp