gpt4 book ai didi

java - 具有从数据库加载的字段选项并进行验证的表单

转载 作者:行者123 更新时间:2023-11-30 07:19:26 25 4
gpt4 key购买 nike

情况如下:

  1. 我有一个带有表单的 JSP 页面。
  2. 此表单包含各种 <select>带有从数据库加载的选项的标签。
  3. 我想对 XML 文件进行验证。

问题是这样的:如果我使用XML文件并且表单字段中有一些错误,struts框架不会通过我布置的类方法,而是直接返回input结果。那么有什么意义呢?这样我就无法加载各种 <select> 的选项我上面提到的标签。

所以我想做这样的事情:

<result name="input" type="chain">
<param name="actionName">Class_method</param>
</result>

但通过这个技巧,我丢失了所有错误消息,即 hasFieldErrors()始终返回 false。

我该如何解决这个问题?

最佳答案

很多问题,不过都很好。

  1. Conversion and validation errors forces the Workflow interceptor to trigger the INPUT result ,工作流将执行 INPUT 结果而不是到达操作方法(execute() 或其他)。

    <
  2. 如果您需要填充一些静态数据,例如选择框源,在 INPUT 结果的情况下也必须可用,您应该将该加载放入 prepare() 方法,并使您的操作实现 Preparable 接口(interface)。此方法在 INPUT 结果返回之前由拦截器运行,as described in the official docs .

  3. 避免使用结果。多年来官方一直不鼓励这样做。

  4. 如果您想防止重复提交(在提交页面并呈现结果后按 F5),您可以使用 PRG patternredirectAction 结果。然而,这样一来,您就会遇到与链结果相同的问题:消息(和参数)将会丢失。

  5. 要在重定向过程中保留错误消息、操作错误和字段错误,您可以使用名为 Message Store 拦截器的预定义拦截器,您必须将其包含在堆栈中,因为 defaultStack 不包含它。我已经描述过how it works in this answer .

  6. 如果您决定将消息存储与 PRG 一起使用,则还有更多注意事项,这里写得太长,但可以在将来解释,关于防止由于 Field Error - 导致无限递归 -> INPUT -> PRG -> 检索字段错误 -> INPUT -> 等等... 将在第 10 次递归附近被浏览器阻止...但那是另一个故事了。

关于java - 具有从数据库加载的字段选项并进行验证的表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37831593/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com