问题标签 [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.
java - jQuery 的 datepicker 插件不会将值发送到 Struts 2 中的后端
我正在使用 jQuery 显示日历,它完美地工作,但是当我提交表单后端时没有收到结果 >> 结果是null
.
JSP:
爪哇:
生成的 HTML:
java - setSession() 没有被调用?
在我实现的动作类中SessionAware
,它setSession()
没有被调用。我execute()
直接收到回调。
以下是一些相关细节:
Struts.xml
动作类
我没有使用默认堆栈中的任何拦截器。我是否需要添加任何拦截器才能在setSession()
. 请指出我的错误。
java - 与动作和拦截器不同的字符串
动作文件:
我的拦截器:
result.jsp
:
MyJsp.jsp
:
struts.xml
:
我的问题是,我从拦截器返回的字符串与操作文件的字符串不同,仍然使用操作字符串生成操作视图来映射结果,而不是拦截器,为什么?
java - 如何重命名 Struts 2 令牌参数
如何重命名 Struts2 令牌参数?
如果我们<s:token/>
在表单提交时使用标签,默认情况下 Struts2 将生成类似这样的 URL
通过使用这个<s:token name="suid"/>
标签,我们可以重命名“struts.token”参数。Struts2 会生成类似这样的 URL
我们如何重命名“struts.token.name”参数?
java - 为什么 SessionMap 没有实例化?
成员第一次注册时,需要设置会话,这通常发生在登录时,所以我想我会重用LoginAction
而不路由到它。但是sessionmap
没有被实例化。
注册动作
登录动作
java - 验证登录页面时,Struts2拦截器会话获取空值
我是 Struts2 的初学者,我正在尝试在我自己的 web 项目上做这个场景:
- 当用户访问登录页面时,服务器将通过使用拦截器访问会话来验证他/她是否以“admin”/“user”身份登录,如果用户在会话中没有权限数据(为空),则将通过到登录页面。
- 如果用户以“admin”身份登录,用户将被重定向到“admin”页面。
- 如果用户以“用户”身份登录,用户将被重定向到“用户”页面。
我正在尝试这些代码,如果我不使用拦截器,我可以访问会话,但是如果我使用拦截器,我得到的是,会话仍然为空,并且使用 NPE 给出错误 500。我不知道它有什么问题。
感谢任何帮助我的人。
struts.xml
struts-pageauth.xml
strusts-user.xml
UserAuthenticationLogin.java
登录.java
java - 如何在struts2中禁止缓存?
在我的 Web 应用程序中,当用户注销时,他不应该访问他以前在登录时查看过的页面。但是,由于浏览器缓存,他可以在单击后退按钮时查看这些页面。
我定义了一个拦截器来处理这个:
并在struts.xml
:
发生的情况是,添加此内容后,我在运行应用程序时收到 404 错误。
我尝试在页面中添加响应标头:
但是必须将其一一添加到所有页面中会很乏味。此外,用户始终可以重新提交表单并再次访问这些页面,而无需实际输入他的登录凭据。
我应该怎么做才能防止浏览器缓存?
java - 如何在 Struts 2 的一个动作类中使用不同的验证方法
我有一个动作类,它有两个动作方法。我想要单独的验证方法。我是 Struts2 的新手。我想要这样的东西。我认为它可以通过验证拦截器来实现,但是如何实现呢?
java - Struts2 定时填写JSP 页面中的标签
我有一个带有一个动作类和一个拦截器的简单 struts2 Web 应用程序。getTitle()
动作类有一个从会话中获取字符串的 getter 方法。拦截器位于默认堆栈的底部,因此它在调用后最后和第一个执行。它以这样一种方式构建,即它可以在操作调用之前和之后修改会话中的标题。生成的 JSP 页面然后显示此标题。
我认为以下逻辑将适用:
- 调用运行前的拦截器逻辑
- 动作类逻辑运行
- 调用运行后的拦截器逻辑
- struts 知道结果并获取结果
.jsp
中的页面- struts 填充
<:s>
标签并从动作类中.jsp
调用。getTitle()
然而这并没有奏效。生成的 JSP 始终显示执行第 3 步之前的标题。我在我的 java 代码中添加了一些简单的日志记录,它证实了我的怀疑。这是执行顺序:
- 日志:调用运行前的拦截器逻辑
- 日志:动作类逻辑运行
- 日志:
getTitle()
动作类的方法运行- log:调用运行后的拦截器逻辑
所以不知何故,第 6 步变成了第 3 步。为什么会这样?如何在调用动作后在拦截器中添加逻辑来更改标题?
java - 如何对两种操作方法使用相同的验证方法
我在 Struts2 中有此方法的操作方法和验证方法。我想将此验证方法用于另一种操作方法。我不知道该怎么做。请帮忙。场景描述如下: