Struts升级后,Struts Action Context不同

时间:2014-05-07 22:17:22

标签: java struts2

我将我的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和方法名称放在一起。

1 个答案:

答案 0 :(得分:2)

尝试从上下文本身获取操作名称

actionName = ActionContext.getContext().getName();

或来自动作映射

actionName = ServletActionContext.getActionMapping().getName();