问题标签 [actioncontext]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
struts2 - 是否会为每个新的操作对象创建一个新的 ActionContext 和 ValueStack?
我的问题是:
1)在Struts2中,每个动作对象都有自己对应的ActionContext
和ValueStack
吗?
换句话说,对于每个新请求,都会创建一个新的操作对象。这是否意味着每次创建新的操作对象时,都会创建一个新的ActionContext
并且ValueStack
还会创建一个?
2)考虑这种情况:
Action1------1st req----->view.jsp------2nd req--------->action2
因此,当对 action1 的请求到来时,将创建一个新的 action1 对象,ActionContext
并且ValueStack
将创建相应的和。
从 view.jsp(点击超链接)一个新的请求去 action2。
这是否意味着先前的ActionContext
and ValueStack
(与 action1 相关)被销毁并创建了新的ActionContext
and ValueStack
(对于 action2)?
3) 假设我ActionContext
在 view.jsp 中的 (of action1) 中存储了一些东西,然后单击 action2 的超链接(来自 view.jsp),这些数据会与ActionContext
(of action1) 一起丢失吗?
谢谢。
java - 在拦截器中获取执行方法注释
我有一些需要特定用户权限才能访问的操作,因此我创建了一个方法注释 @RequiredPermission 和一个拦截器来验证将要执行的方法是否具有注释以及是否验证登录的用户有权限。
问题是我不知道如何从 ActionInvocation 和 ActionContext 中获取这些信息。
我确信这应该是一种方法,因为如果不是,我会说它可能不是一个很好的框架。
任何提示?
java - 使用 Struts 2 和 Spring security 3 处理会话
我正在尝试集成 Struts 2 和 Spring security 3。我不明白如何处理会话,两者都有。有标准方法吗?
我知道会话处理中内置的struts会话,ActionContext
例如
但不是如何与它一起使用弹簧安全性。
有很多关于使用 Spring Security 3 的 Spring MVC 教程,但关于 Struts 2 和 Spring Security 3 的教程不多。你知道有什么好的教程吗?还是我会更好地使用 Spring MVC?
struts2 - Struts2 ActionContext 和 ValueStack?
我的问题是:
- 在Struts2中,是不是每个动作对象都有自己对应的ActionContext和ValueStack?
换句话说,对于每个新请求,都会创建一个新的操作对象。这是否意味着每次创建一个新的动作对象时,也会创建一个新的 ActionContext 和 ValueStack ?
- 考虑这种情况:
Action1------1st req----->view.jsp------2nd req--------->action2。
因此,当对 action1 的请求到来时,将创建 action1 的新对象以及相应的 ActionContext 和 ValueStack。
从 view.jsp(点击超链接)一个新的请求去 action2。
这是否意味着先前的 ActionContext 和 ValueStack(与 action1 相关)被销毁,而新的 ActionContext 和 ValueStack(与 action2 相关)被创建?
- 假设我在 view.jsp 中的 ActionContext(action1)中存储了一些东西,然后单击 action2(来自 view.jsp)的超链接,这些数据会与 ActionContext(action1)一起丢失吗?
struts2 - (Struts2) 如何从拦截器向 Action 实例添加新参数?
我想制作一个拦截器来预处理 XML 请求。在这个拦截器中,它解析 XML 并将处理后的信息放入 ValueStack 中,以便它可以映射到操作中的实例。但是,我尝试了很多方法,但没有一个是有效的。任何人都可以帮助我并给我建议吗?谢谢!
In Interceptor
//Get ValueStack
ActionContext ctx = invocation.getInvocationContext();
映射 ctxMap = ctx.getValueStack().getContext();//尝试了以下,但以下都不行
ctxMap.get("com.opensymphony.xwork2.ActionContext.parameters")).put("data1", "1");
ctxMap.get("参数")).put("data1", "1");
ctxMap.get("request")).put("data1", "1");
ctx.getParameters().put("data1",new String[]{"1"});
spring - Strut 2.3.1.2 单元测试,如何使用 getContext() 删除 Spring 依赖与 NPE
我刚刚升级到 Struts 2.3.1.2,并且在 JUnit 测试方面遇到了一些问题。
我的旧测试代码是这样的......
动作类的执行方法有代码
这会在 LocalizedTextUtil 中导致 NullPointerException,因为它调用...
现在我可以尝试这样做...
但是我会得到一个 NullPointerException,因为上下文中的 Valuestack 是空的。我可以继续尝试解决这些问题,但这似乎是一项徒劳的任务。肯定有更好的办法?!?
好....
我遵循新的Struts 2.3.xx 测试文档
我的 struts.xml 与弹簧相连。
我的测试课
但这现在意味着我得到了一个完全填充的 Spring 注入的 Action 类!大多数人会说“是的!!!” 在此刻。
我的问题是这不是一个 UNIT 测试类,它现在一直调用到 DB 层,因为这就是它在运行时的连接方式。
所以这是我的问题,我知道我花了一些时间来解决它,是否有可能获得一个可以访问所需资源的 Action 类(对于方法调用,例如 getText()),但不是所有的 Spring连线?
目前,我很想走反射路线以删除所有与我的操作匹配的 setServicexxxx 方法,至少那时我会在运行测试时得到 NullPointerException 并且我可以模拟该服务,但那是错误的。我希望我的测试很快,而不是花 2 秒来启动 Spring 上下文。
Struts2.3 是如何产生一个不遵循单元测试的口头禅的基础测试类的?
这在 Struts 2.0.9 (xwork-2.0.3.jar) 中一切正常。
我错过了什么?
struts2 - Struts2 会话过期
我正在为我的应用程序使用 struts2jquery 网格插件。我正在使用拦截器进行会话超时,我正在 web.xml 中配置我的会话超时,但问题是会话超时后它不会进入所需的页面说 login.jsp ,我的 struts.xml 如下..
我可以在调试时进入拦截器类,但它不会将我重定向到登录页面。请有人告诉我我的代码有什么问题吗?
我的拦截器方法是..
java - Struts2使用属性标签从jsp访问ActionContext
我一直在查找此信息一段时间,但似乎网上没有太多信息。
为了简单起见,我们如何ActionContext
通过<s:property/>
标签访问?
基本上我想获得com.opensymphony.xwork2.ActionContext.locale
(当前语言环境)
我尝试了所有这些,但似乎没有一个工作
以及这些的更多组合。
谢谢
struts2 - struts2 i18ninterceptor 返回同一页面或操作
我为我的问题搜索了 2 个小时,但仍然找不到任何解决方案。
我想做的事:
我将 struts2 用于国际应用程序,所以我需要多语言支持。因此,我发现 i18n-Interceptor 只需通过一个参数即可更改语言环境(非常酷!)。现在我想在我的应用程序中的任何时候更改语言环境,以便用户可以更改语言并被转发到他来自的同一页面或操作。这似乎并不容易。我已经尝试了以下在谷歌上找到的东西,但对我不起作用:
使用 JSP 上的 acutall URL/URI(如“ShowUser.action”)并使用另一个语言环境调用它 -> 无法找到在 jsp 中使用参数获取完整 URL 或 URI。URL 为我提供了来自磁贴的当前站点(即 /content/site/user.jsp),而 URI 则返回我的磁贴布局(即 /content/layout.jsp)。我试过 request.getRequestUrl() 和 request.getRequestURI()
使用 actionContext 获取 JSP 的完整 URL -> 找不到..
在我的 "ChangeLocale.action" 中使用 "request.getHeader("referal") 并将其动态设置为 struts.xml 中的 redirectAction -> 工作但太多代码来解析带有参数的 URL 等)
第三点是使用以下代码,但我正在寻找更好的解决方案:
struts.xml 中的相关部分
LocaleAction.java:
所以我来自行动:
在用户站点上,我切换到另一种语言,我的 LocaleAction 将返回 forwardAction:
所以,这行得通,但在我看来像黑暗的一面?解决这个(如我所想的)“小”问题的正确解决方案是什么?感谢您的回答。
最好的问候托马斯:-)
struts2 - actioncontext 和 actionInvocation struts2 有什么区别?
我对 ActionContext 和 ActionInvocation 有点困惑。我知道 Action Context 是执行 Action 的上下文。ActionInvocation 是否位于 ActionContext 中,如 Session、Value Stack 等?其次,是否在每个用户请求上创建 ActionContext 因为它是每个线程唯一的?如果是这样,每次在每个用户请求上创建一个新的操作上下文是否成本太高?