我将我的Struts库更新为2.2.1并且不得不进行一些小的调整,但是我做的测试越多,我就越发现问题。
我们通常使用:
actionName = ActionContext.getContext().getActionInvocation().getProxy().getActionName();
返回动作名称,所以如果我请求/home.do它可以工作,但是如果我需要在家里运行一些东西,比如/home !save.do我的正常流程用来返回通常会让我回家,我会添加.do。现在它返回整个事物,并导致循环,或者在某些情况下导致失败表单提交。
例如
/manageUsers!editUser.do
<form action="${actionName}!save.do"> --- IN JSP
在浏览器中显示为:
<form action="/manageUsers!editUser!save.do">
actionName
用于返回&#34; manageUsers&#34;现在出于某种原因,我将actionName
和方法名称放在一起。
答案 0 :(得分:2)
尝试从上下文本身获取操作名称
actionName = ActionContext.getContext().getName();
或来自动作映射
actionName = ServletActionContext.getActionMapping().getName();