我将 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
用于仅返回“manageUsers”,由于某种原因,我现在将 actionName
和方法名称放在一起。
最佳答案
尝试从上下文本身获取操作名称
actionName = ActionContext.getContext().getName();
或者来自 Action 映射
actionName = ServletActionContext.getActionMapping().getName();
关于java - Struts 升级后 Struts Action Context 发生变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23529462/