问题标签 [interceptorstack]

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.

0 投票
1 回答
186 浏览

java - Struts2 中的转换和验证问题

我一直在研究struts。

我正在使用 Struts 2 在应用程序中模拟编程验证和转换错误。

在我的应用程序中,我有一个名为 Product 的模型类,如下所示:

ProductForm.jsp在要求用户输入产品信息的地方调用了 jsp,如下所示:

如果用户Add Product通过提供正确的信息点击按钮,数据将按照正常流程保存到数据库,配置struts.xml如下:

我的 Action 类ProductAction如下所示:

如果我们提供无效数据,例如价格小于或等于零或 productId 为空,则将触发验证。

如果我们在价格字段中输入字母,则会触发转换错误。

但是,如果我在价格字段中给出字母,那么我的product对象在进入方法时所有变量都变为空值,当我尝试从类对象访问时validate(),这会导致方法中出现空指针异常。validate()productIdproductProductAction

product如果我在. ProductAction_priceProductForm.jsp

0 投票
1 回答
208 浏览

java - Struts 2.3:运行时添加拦截器

我的任务是添加/更改拦截器运行时(使用插件,无权访问父配置)。

在以前的 Struts (2.0) 版本中,这非常简单:InterceptorStackConfigActionConfig类具有addInterceptoraddInterceptors方法。

在较新的版本(2.3)中,方法移入了Builder静态子类,我不能像以前那样使用它们。

所以这是一个问题。已经花了几天时间试图避免它。任何人都可以帮忙吗?

我之前的代码示例:

0 投票
1 回答
180 浏览

java - 当我清除屏幕时,我想避免文件太大错误

  • 我有一个带有文件上传选项的页面,使用

    它工作正常。

  • 我在屏幕上还有一个Clear按钮,它调用一个方法来将所有页面字段重置为其默认值。

  • 我使用@SkipValidationclear()方法,因此如果您清除包含无效数据的页面,则不会收到错误消息。

我的问题是:

如果我点击上传一个太大的文件然后点击Clear按钮,我会收到"File too large"消息,因为这是由默认堆栈(至少这是我的理解)而不是我的验证代码生成的。

document.getElementById('commentAction').reset();在该方法中使用,但这无济于事。

如何在没有任何错误消息的情况下重置页面?

UDATE 根据我收到的建议,我正在使用以下 jquery。

以及Clear按钮的以下struts2

现在它会在不离开页面的情况下清除输入字段,但我在页面上有一个由以下 struts2 代码生成的列表

此列表不会被清除,因为它不是生成的 html 中的字段。当我查看源 html 时,列表值在 html 中被硬编码。我可以在客户端清除列表还是需要在服务器端清除并重新显示页面?谢谢!

0 投票
1 回答
1993 浏览

java - Struts2 Fileupload 在动作类中给出空文件

我正在尝试使用 struts2 fileUpload 拦截器在我的 Web 应用程序中实现文件上传过程。下面是我的代码

索引.jsp

struts.xml

文件上传动作.java

当我在 index.jsp 页面中选择一个 pdf 文件并单击上传按钮时,它会为操作类的 fileUpload 字段提供空值。

我正在调试模式下执行应用程序并给出了这个

检查它返回的内容,我得到空值。

0 投票
1 回答
45 浏览

validation - 当来自验证xml文件的验证错误时,Struts2自定义拦截器不调用?

我为 struts2 应用程序编写了一个拦截器,并在 struts 配置文件中进行了配置。在这里,我仅将此拦截器用于某些操作,而不用于全局操作。所以这里我的问题是,当验证错误来自 ActionName-validation.xml 时,我的自定义拦截器不起作用。请给我建议/解决方案。

0 投票
1 回答
1049 浏览

file-upload - Struts2上传文件错误

我想将文件上传到我的网络项目,但我得到:

警告 oastruts2.dispatcher.Dispatcher -找不到创建多部分保存目录 '/temp'。警告 oasdmJakartaMultiPartRequest -无法解析请求 org.apache.commons.fileupload.FileUploadBase$IOFileUploadException:处理多部分/表单数据请求失败。 /temp/upload_1e39874d_effe_405b_9a92_3050ca60a661_00000000.tmp (没有这样的文件或目录)

所以我想更改上传目录

但它不起作用,我不断收到同样的错误

0 投票
1 回答
65 浏览

java - Struts2 中没有 Jakarta 的链式重定向(上传大文件)

我正在用struts2制作一个新项目。一切都好,但我不知道在这种情况下发生了什么。

当业务逻辑失败时,项目有链式重定向,它返回到最后一个 JSP(最后一个动作),成功地重新加载所有页面而无需编程工作(它也重新加载旧请求)。

无论如何,当 Jakarta 检测到用户正在尝试上传一个大文件(默认配置为 20 MB)时,动作的逻辑知道这一点并强制链式重定向到最后一个动作。

我调试这个逻辑。我有一个拦截器可以做几件事,在典型的行中:

当 Jakarta 强制链重定向时,拦截器会捕获这个新请求,但不会通过调用方法到达动作

我不知道为什么会这样。当相同的动作强制进行相同的链重定向时,因为其他验证(如 struts2 的 FileUpload 拦截器或拥有验证)都可以正常工作。

我在程序中解决了避免重定向,但我想知道为什么我不能使用我的正常模式。

struts.xml 的某些部分:

如果所有验证都很好,MostrarResumenSubsanacion 的结果就是下一步操作。

如果某些验证失败,MostrarRespuestaSubsanaciones 的结果是最后的操作。

ErrorJakarta 的结果是解决问题的新行。

0 投票
1 回答
427 浏览

java - 使用 Struts 文件上传时出现 NullPointerException

我按照这里的例子http://www.tutorialspoint.com/struts_2/struts_file_uploads.htm

在这个例子中,使用了拦截器 fileUpload 和 basicStack

运行此示例后,我得到了一个NullPointerException。当我删除那些拦截器时(我知道在没有指定拦截器时将使用 defaultStack),它工作正常。我认为问题是拦截器params没有正确使用/引用

但是,在 basicStack 中,params包含 。因此,表单中的参数未传递给操作,导致此异常

任何回应表示赞赏。

以下是完整的堆栈跟踪:

0 投票
2 回答
1981 浏览

java - Struts 2 中的作用域模型驱动拦截器未将模型绑定到会话作用域

我想在多个请求之间共享模型(表单数据),因此在动作类中实现了 ScopedModelDriven 拦截器。

下面是我的代码

模型 - EventSearchBean.java

动作 - EventSearchAction

struts.xml

1) 每次请求都会创建新模型(模型数据不会从会话中复制以用于后续请求)。需要对代码进行哪些更改才能将模型置于会话范围内?
如何使模型表现得像 Struts1 中会话范围的 ActionForm?

2)如果我在声明模型时删除动作类中的新运算符,即
私有EventSearchBean eventSearchBean;
在操作类中访问模型时出现空指针异常。
如何声明/初始化模型?

3)只有在 UI 中提交表单时,如何在会话中覆盖/更新模型

0 投票
2 回答
261 浏览

java - Struts 采用不正确的返回字符串。而不是“输入”,它应该采取“成功”

我正在使用struts 2 和hibernate 开发一个应用程序。我的 jsp 页面上有一个提交按钮,它正在执行操作EvaluateRating

JSP 页面

这个动作被映射到struts.xml

struts.xml

我的EvaluateRating()方法看起来像:

RatingAction.java

我面临的问题是我已经success从该方法返回,但它仍然input作为返回字符串并重定向到Index.jsp页面。相反,它应该采取success并重定向到 action MgrPage

如果我不在我的struts.xml<result name="input">/Index.jsp</result>中写行。它给了我以下错误:

Struts 问题报告

Struts 检测到一个未处理的异常:

消息:没有为操作 Action.RatingAction 和结果输入定义结果