java - Struts 升级后 Struts Action Context 发生变化

标签 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 用于仅返回“manageUsers”,由于某种原因,我现在将 actionName 和方法名称放在一起。

最佳答案

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

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

或者来自 Action 映射

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

关于java - Struts 升级后 Struts Action Context 发生变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23529462/

相关文章:

Java:为什么 "\uFFFF"在 UTF-8 中转换为 [-17,-65,-65]?

java - 如何避免一对多单向关联中的插入和更新查询

java - Android 应用程序使用 AsyncTask 下载文件时出现内存泄漏

java - 尝试从 ArrayList 在 Struts2 中创建表

java - Struts2属性歧义

java - Struts2 - append标签生成的结果不能迭代多次

java - java中while循环转换为递归

Java Slick2D 图像 equals 方法

java - 更新动态 JSP 内容

struts2 - 比较 JSP 中的两个值堆栈字符串值 - struts2