【问题标题】:Display validation messages in struts 2在struts 2中显示验证消息
【发布时间】:2011-04-12 10:16:48
【问题描述】:

我的应用程序中有一个表单,我想在其中验证用户输入。它有一个从 db 表填充的组合框。所以我必须先去动作类来填充它(例如:populateFormAction)。然后它将转到 form.jsp 页面。

但问题在于验证时。我已将 populateFormAction 设置为输入结果,如下所示

<result name="input" type="redirect">/populateFormAction</result>

但是当它返回到 form.jsp 时,它并没有显示验证错误。我认为这是因为在 Action 处理程序和 form.jsp 之间使用了 populateFormAction。

【问题讨论】:

    标签: java validation struts2


    【解决方案1】:

    您的问题有两种解决方案

    1. 调用正在填充的方法 组合,在返回 INPUT 之前(如果 有任何验证错误)。和 然后不要使用类型重定向,而是 直接移动到您的 form.jsp。的 当然,如果 你有填充组合和 验证同一操作中的方法 类。

    2. 将您的操作错误作为参数传递给 populateFormAction 如下。看看here

    我不确定actionError后面是否会有's',所以两个都试试

    【讨论】:

    • 您好阿努感谢您的回答。但我对你的建议有些怀疑。第一个:我没有通过任何方法使用默认的 struts-2 验证。对于2nd:填充值取自db,所以可能有更多的值,所以我认为在xml中添加为param是不可行的
    • 如果您使用的是validation.xml,那么第一个不是解决方案。第二个我在谈论将错误作为参数而不是struts.xml中的db值传递。我找到了this link,我认为这对你有用
    • 结果类型“链”在这种情况下有用吗?
    • 当然可以,但是它会在整个操作之后在浏览器中显示第一个操作 url,而不是最后一个。如果您对此没有任何问题,您可以使用它
    • type-"chain" 仅用于第一个映射,顺便说一句,您之前从未提到过 populateEmployee_Registration 映射。如果您显示您的类的一些代码以及这两个类的映射,不仅输入而且其他映射也可以帮助您
    【解决方案2】:

    您可以使用“MessageStoreInterceptor”来保存消息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-28
      • 1970-01-01
      • 2016-03-29
      • 1970-01-01
      相关资源
      最近更新 更多