Action类中的URI与方法名称 - Struts 2

时间:2011-03-03 13:39:35

标签: struts2

在我的Action类中,我按如下方式定义了方法名称:

public String doAddUser(){}
public String doDeleteUser(){}
我在Struts.xml中的

配置如下:

<action name="*User" class="MyAction" method="do{1}User"></action>

从URI,如果我请求AddUser或DeleteUser,它的工作。但我想请求addUser或deleteUser(以小写字母开头)。我怎么能实现这个目标呢?

1 个答案:

答案 0 :(得分:1)

URL区分大小写,因此以下内容将使addUser和deleteUser工作,但不会使AddUser和DeleteUser工作。如果你想同时支持两者,你需要创建多个映射,但我认为你不应该为此而努力。

<action name="*User" class="MyAction" method="{1}User"></action>

public String addUser(){}
public String deleteUser(){}
  

为什么我问这个问题,在Struts1.x中,我们有LookupDispatchAction概念。当用户点击一个url(例如addUser)时,我们可以使用任何名称调用我们定义的方法(即,doAddUser)。在这种情况下,我们可以解决我的问题。但是Struts 2.x,没有这样的可能性(据我所知)。

听起来你正在寻找dynamic method invocation。基本上,如果您将操作映射为myAction,则可以通过转到addUser()来调用myAction!addUser方法。 myAction!execute相当于myAction的默认值。