在我的Action类中,我按如下方式定义了方法名称:
public String doAddUser(){}
public String doDeleteUser(){}
我在Struts.xml中的配置如下:
<action name="*User" class="MyAction" method="do{1}User"></action>
从URI,如果我请求AddUser或DeleteUser,它的工作。但我想请求addUser或deleteUser(以小写字母开头)。我怎么能实现这个目标呢?
答案 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
的默认值。