如何返回带有 ActionErrors 的多个表单的 JSP?

发布于 2024-09-14 08:56:58 字数 252 浏览 6 评论 0原文

我有一个具有多种表单的 JSP 作为对象的“编辑”视图。现在我想发送其中一张表单,但 validate 方法中出现错误,因为其中一个输入字段未填写。

当验证 bean 并发现错误时,Struts 返回 JSP,该 JSP 在我的 struts-config.xml 中定义为 bean 的 INPUT。但现在其他形式都失去了它们的价值。

我怎样才能解决这个问题,以便我将返回到 JSP 并再次填写所有表单?

I have a JSP with multiple forms as the "edit" view of an object. Now I want to send one of the forms, but there is an error in the validate method, because one of the input fields was not filled.

When the bean is validate and the error is found, Struts returns to the JSP which is defined as the INPUT for the bean in my struts-config.xml. But now the other forms are missing their values.

How can I solve this issue, so I'll be returns to the JSP with all forms filled again?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

寄风 2024-09-21 08:56:58

当 Struts 从提交的表单接收参数时,它将它们绑定到 ActionForm 对象,然后在 ActionForm 对象上调用 validate()。当您返回页面时,绑定的参数仍保留在那里,并且您的值应该出现在页面中。

有一些事情可能会干扰此机制:

  1. 缺乏处理的reset()方法
    复选框-从你的问题来看,它
    似乎不太可能是这样;
  2. 具有用于链接页面调用的“请求”范围的表单 - 同样,不太可能是这样;
  3. 最可能的原因 - 您的页面中有多个表单,但您只提交了其中一个表单,因此其他表单中的字段不会发送到服务器。因此,Struts 没有任何东西可以为它们绑定。当您返回该页面时,您会丢失您的值。这不是 Struts 的问题。您可以通过将所有字段放在一个表单中或使用 JS 将其他表单中的字段也提交到来解决此问题。请参阅此处

When Struts receives the parameters from your submitted form, it binds them to the ActionForm object and then calls validate() on the ActionForm object. The binded parameters remain there when you return to the page and you should have your values present in the page.

There are some things that can interfere with this mechanism:

  1. lacking a reset() method to treat
    checkboxes - from your question, it
    seems unlikely to be this;
  2. having a form with "request" scope used for chained page calls - again, unlikely to be this;
  3. The most probable cause - you have multiple forms in the page but you only submit one of them so the fields in the other forms are not sent to the server. As a result, Struts has nothing to bind for them. When you return to the page you have your values missing. This is not a Struts problem. You can solve this by having all fields in one form or use JS to also submit the fields from the other forms to. See a similar issue here.
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文