【问题标题】:Struts2 Validation - Repopulate Children when validation failsStruts2 验证 - 验证失败时重新填充子项
【发布时间】:2011-08-16 01:51:00
【问题描述】:

已经很晚了,我很累,但是这个问题让我发疯了。

我有一个表格。这个表单有一些映射到实体的输入字段,并且在提交时将被持久化。 在同一页面(但不是表单的一部分)上,我概述了该实体的子项。

struts2-Action 有一个名为 edit() 的方法,它将在显示表单之前运行。此方法采用提供的 id 参数并从数据库中检索完整的实体(包括子实体)。 这样表单就可以很好地显示子信息。

但是。当验证(服务器端)出现错误时。实体对象不再有子对象。所有信息(除了表单域本身的信息)似乎都消失了。

我应该怎么做才能在验证失败后仍然看到我的孩子?

【问题讨论】:

    标签: java validation struts2


    【解决方案1】:

    已经很晚了,我也很累,但是我的头顶:

    我可能会通过使用 ajax 来避免这个问题(即将动作分成更小的部分,因为一项服务似乎与另一项服务无关,即显示子项不需要与更新实体相关联)。

    但这需要大量工作,尤其是如果您不使用 ajax。真正简单的是实现 Validateable(或者如果您扩展 ActionSupport 它已经这样做了),然后添加/覆盖 validate 方法。如果您使用 xml 进行验证,请不要担心两者都会运行。

    然后创建一个 setup 方法来填充您需要的字段,并将其放置在 validate 方法中的正确位置(可能是第一行)。由于它总是在执行之前运行,它可能会减少执行方法的大小。

    【讨论】:

    • 完美。不知道 Validateable,但这正是我所需要的。
    猜你喜欢
    • 2014-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多