Struts.xml中Action的method与路径的三种匹配方法


首先我们有一个Action——UserAction

public class UserAction extends ActionSupport
{
public String add()
{
return "add";
}

public String modify()
{
return "modify";
}
}


1 指定method

<package name="user" namespace="/userPath" extends="struts-default">
<action name="userAdd" class="com.xy.UserAction" method="add">
<result name="add">add.jsp</result>
</action>
<action name="userModify" class="com.xy.UserAction" method="modify">
<result name="modify">modify.jsp</result>
</action>
</package>

路径:
userPath/userAdd
userPath/userModify

特点:
不灵活,CRUD四个操作就要配4个action。

2 动态方法调用DMI(Dynamic Method Invocation)

<package name="user" namespace="/userPath" extends="struts-default">
<action name="user" class="com.xy.UserAction">
<result name="add">add.jsp</result>
<result name="modify">modify.jsp</result>
</action>
</package>

路径:
userPath/user!add
userPath/user!modify

特点:
灵活。只要指定不同的方法就可以做不同的操作。

3 通配符

<package name="all" namespace="/" extends="struts-default">
<action name="*_*" class="com.xy.{1}Action" method="{2}">
<result name="add">{1}_add.jsp</result>
<result name="modify">{1}_modify.jsp</result>
</action>
</package>

路径:
User_add
User_modify

特点:
更加灵活。整个项目甚至只要配一个总的action。是指定方法的一个特殊的用法。不过我觉得用DMI可以将每个模块分的清楚。

4 总结

在配置的时候要记住一句话:约定优于配置

在一个项目中,配置前,我们需要对action名,网页名等等有严格的约定,才能做好配置。

你可能感兴趣的:(struts.xml)