问题标签 [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 - execAndWait 拦截器在等待后未重定向到成功页面
我有一个登录屏幕,其中将进行一些用户输入验证,用户将通过身份验证并最终重定向到欢迎屏幕。
下面是拦截器的定义LoginAction
:
下面是执行方法LoginAction
:
我对这段代码有几个问题:
1) 对于经过身份验证的用户,wait.jsp
页面正在显示,但Welcome.jsp
没有发生重定向。
2)对于未经身份验证的用户,我收到以下异常:
java - 在 Struts 2 中保留多个 JSP 和 Actions 之间的值
我的Struts项目结构如下:
page1
-> action1
-> page2
-> action2
->page3
我需要的是我在输入标签中输入的值,page1
以便在action2
.
这是我的代码:
第 1 页:
行动1:
第2页:
行动2:
并显示所有内容
第 3 页:
这是我面临的问题,如txtid
显示为null
,从中我推断该值未从传递page2
到action2
我想出的一个解决方案是使用
在我的形式中page2
,我可以使用txtid
as txtid2
in的值action2
,但这似乎更像是一种 hack,而不是实际的解决方案,所以欢迎任何其他建议。
java - Struts 2 FileUploadInterceptor 触发太晚,无法验证文件大小和文件扩展名
我似乎无法弄清楚如何FileUploadInterceptor
在 Struts2 中正确使用。我把所有东西都连线了,它确实有效。我可以指定文件扩展名和最大文件大小,它确实有效。问题如下:
- 我将最大文件大小指定为 100mb
- 当用户上传 110mb 的文件时,我可以看到该类使用帮助公共库
JakartaMultiPartRequest
处理文件上传。file-upload
这发生在文件上传拦截器之前。 - 一旦用户等待几分钟并且文件上传完成,文件上传拦截器就会触发并告诉用户文件太大。
事件顺序有问题。我想查看内容长度标头并立即告诉用户文件太大(在上传之前)。我知道标题并不总是在那里,但如果它在那里,我想使用它。
除了覆盖JakartaMultiPartRequest
类之外,我不明白如何做到这一点。
编辑:这是我理解的顺序:
- 用户通过文件上传向服务器发送多部分请求。
- Struts2 中的 JakartaMultiPartRequest 解析请求并将其上传到 Struts2 临时文件夹。
- 流程最终到达文件上传拦截器,在该拦截器中检查最大文件大小和文件扩展名。
从上面很明显,上传发生在第 2 步。整个文件现在都在服务器上,并且只有在文件上传拦截器检测到它太大之后。
java - 为什么我们不能在 Struts2 中更改 validate 方法中的任何内容?
在 Struts2中,方法在validate
方法之前被调用execute
。但是为什么我们不能改变validate
方法中的任何字段值呢?
java - TokenHelper - 找不到映射到令牌名称 struts.token 的令牌
如果我添加"execAndWait"
拦截器,它会给我上面的错误:
配置:
正如我所读到的,有人说这是一个警告,我们可以通过更改TokenHelper
课程来避免它。如果是这样怎么做?
java - 如何在 Struts 2 中有没有后缀的 URL(例如 .action)?
事情是这样的,我不仅需要使用我的 .war 服务 java,还需要一些 javascript 文件。所以,例如。如果有人访问 URL:
然后我需要将其正确地用作 javascript 文件。同时,如果有人去:
我需要 Struts2 将其作为可能的控制器提供服务。
我在网上找到的从 url 中删除后缀的方法会导致两个 URls 都由 struts 2 提供服务(因此foo.js
即使第一个文件存在,也会给它一个错误)。有没有办法(例如拦截器)在给出错误之前首先检查给定的 .js 文件是否存在?
java - Struts 2.3 Store Interceptor:如何将 ActionErrors 从 Interceptor 传递给 Action?
我一直在阅读StoreInterceptor
Struts 2 文档中的内容,它讨论了如何将 StoreInterceptor 粘贴到您的 Action 定义中struts-config.xml
,并且它可以正常工作。但那是如果您ActionErrors
在 Action 中创建和添加 from。
我的问题是我正在使用 a 进行登录LoginInterceptor
,如果登录失败,则会添加ActionError
如下内容:
它添加得很好,但是当我到达在之后调用的LoginAction 时LoginInterceptor
,ValidationAwareSupport.actionErrors
是null
.
我认为通过添加StoreInterceptor
这样的内容,它将存储ActionErrors
在请求或会话中(使用operationMode
"store"
or"retreive"
参数):
但它不起作用。我也尝试将StoreInterceptor
直接添加到 defaultStack 中,但这也不起作用。
StoreInterceptor
不仅适用ActionErrors
于动作之间的保存,而且适用于拦截器和动作之间的保存?
java - 如何使用 OGNL 调用操作方法
如何使用 OGNL 调用操作方法?
helloAction.java
success.jsp
struts.xml
quote()
不调用此方法。我正在使用 xwork-2.0.1.jar 和 ognl-2.6.11.jar。
struts2 - 在 Struts 2 拦截器中获取 HttpServletRequest
为了得到HttpServletRequest
一个拦截器,我使用了下面的代码:
我试图ServletRequestAware
在拦截器中实现,但没有奏效。
有没有更好HttpServletRequest
的方法进入拦截器?!
java - 如何拥有多个调用 `invocation.invoke()` 的 Struts2 拦截器?
假设在一个 struts 2 动作中有多个嵌套的拦截器:
- 富
- 酒吧
- 巴兹
- 酒吧
每个拦截器都在他们的intercept()
方法中执行以下操作
什么时候invocation.invoke()
被调用,这个会调用intercept()
队列中下一个拦截器的方法,还是真的会调用该action.execute()
方法?
例如,如果foo
有invocation.invoke()
,会调用bar.intercept()
还是会调用action.execute()
?
如果是后者,那么我该怎么做才能让bar.intercept()
或baz.intercept()
(如果从 bar 拦截器调用)在调用之前调用action.execute()
,即所有拦截器都在调用之前运行action.execute()
?