问题标签 [struts2-interceptors]
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 - 拦截器中的 Struts 2 Session
我试图通过实现SessionAware
接口(我已经实现了该setSession
方法)从我的拦截器中访问会话对象,但我无法以这种方式获取我的会话对象。
然后我尝试ActionContext.getContext().getSession()
了,我能够获得会话,但我不知道,但它只是第一次在每个浏览器中为每个用户显示为空,然后在调用另一个操作时填充。
我认为会话有问题。为什么它只是第一次给我一个空会话?它只有在第一次给空会话后才设置一些东西吗?
如果是这种情况,那么每个人都会在他们的第一个请求中显示为访客,然后在他们的第二个请求中显示为用户名,然后继续。
还是我以错误的方式获得会议?
我看到了在拦截器中获取会话的代码,但这对我不起作用,因为它找不到常量HTTP_REQUEST
。
关于解决任何问题的任何建议?
我忘了提到的事情 - 我的网站是一个安全网站(https),所以如果用户没有登录,它不会让他进入网站,如果他登录了,至少他的用户名应该在会话中. 不应该吗?
java - Struts2 addActionError,jsp中的错误重复
我在使用 struts2 的 addActionError 方法时遇到了一个奇怪的错误。
我在 Action Class 中的代码是:
STRUTS.xml:
其中 MyInterceptorStack 是:
我的 JSP:
消息应该是:
但结果重复如下:
java - struts2让我发疯
我一直在尝试制作一个java项目。它使用 Struts 2 标签。每当单击它时都会有一个按钮Update,它应该更新数据库中的值。
但我收到此错误:
没有为操作 com.comviva.im.ui.action.sysadmin.CUGAction 和结果输入定义结果
jsp - 使用消息存储拦截器的 Struts 2 验证
我有一个尝试让用户登录的操作。
如您所见,如果用户名或密码无效,我会抛出一个 CredentialException,然后在我的 fieldError 中填充该异常消息。我什至尝试添加一个操作错误。
通过一些建议和在线搜索,我设法使用 Message Store Interceptor 使用 RegisteredUserAction.action 和 MainAction.action 中的注释分别存储和获取。
和
这是相关的 struts.xml 文件内容:
我正在使用基于模板的方法,其中中间内容(在我的情况下是 LoginPage.jsp)被动态包含到主页中。
我的 page.jsp(包括 mainContent):
我的 login.jsp(包括在内):
重定向工作正常,登录表单出现,但没有错误。我什至尝试在 struts.xml 中使用消息存储拦截器,但没有成功。:(
java - 用户会话在 Tomcat 上搞混了
我们在 IIS7.5 之后使用 Tomcat 6.29,带有 spring、hibernate 和 struts2 框架。我们现在开始注意到服务器会话变得混乱,尤其是在 Ajax 请求中。
有关问题的更多详细信息
- 用户 1 请求 page1,用户 2 请求 page2。但是 user1 获得了 page2 服务,而 user2 获得了服务器 page1。
- 会话 ID 也在变化,但在刷新页面时,会提供正确的页面。
- 当用户数量很多时,问题似乎更频繁地发生。
任何指向问题根源的指针都会有所帮助,代码在用户数量较少的情况下运行良好,并且没有报告此类实例。
编辑
web.xml
struts.xml
其他信息
1)用户通过提交表单登录,登录时我们执行以下操作,
2) 使用的操作系统是 windows 2008 RC2
EDIT2 INCEPTOR 代码
拦截器 1
拦截器 2
java - 从 Struts2 的堆栈中删除拦截器
在struts.xml
中,我tokenSession
在我的拦截器堆栈中包含了拦截器,以验证每个请求的令牌。不幸的是,对于 AJAX 请求,同样的效果并不好。执行时我得到了invalid.token
响应actionInvocation.invoke()
。
因此,我想停止为 AJAX 请求(单独)执行 tokenSession 拦截器。我有一个自定义拦截器(日志记录),它在拦截器之前被调用tokenSession
。tokenSession
是否可以根据请求类型(如果是 AJAX 请求)从日志拦截器的堆栈中删除拦截器?
java - 没有为操作定义结果和结果输入
这是我的struts.xml
:
当我打电话loadcity.action
时,我收到以下错误
这是我的操作方法:
java - 警告:表单令牌与会话令牌不匹配 null
这个警告的原因是什么?
JSP:
Struts.xml:
java - 我的配置文件 struts.xml 是否正确?
我想知道这个文件是否正确,因为我不太了解拦截器。
struts.xml:
我正在使用 Struts 2.3.1 获取更多详细信息。
java - Struts 2 工作流拦截器和没有 INPUT 结果的操作
如果我理解,Struts 2 拦截器堆栈正确,工作流拦截器会查看验证拦截器是否报告了任何验证失败。如果发现有验证失败,则返回(默认)Action.INPUT
如果是这种情况,如果正在执行的 Action 没有INPUT
在其struts.xml
配置中定义结果会发生什么?