Struts2验证 - 验证失败时重新填充子项

时间:2011-08-16 01:51:00

标签: java validation struts2

它已经很晚了,我很累,但这个问题让我感到很疯狂。

我有一张表格。此表单包含一些映射到实体的输入字段,并在提交时保留。 在同一页面上(但不是表格的一部分),我概述了这个实体的孩子。

struts2-Action有一个名为edit()的方法,它将在显示表单之前运行。此方法获取提供的id-parameter并从数据库中检索完整实体(包括子项)。 因此,表格可以很好地显示儿童信息。

然而。验证(serverside)出错时。实体对象不再有孩子。所有信息(表单字段本身除外)似乎都已消失。

即使在验证失败后,我该怎样做才能看到我的孩子?

1 个答案:

答案 0 :(得分:1)

现在已经很晚了,我也很累,但是我的头脑却不知所措:

我本可以通过使用ajax避免这个问题(即将操作变为较小的部分,因为一个服务似乎与另一个服务无关,即显示子节点不必与更新实体相关联。) / p>

但这是很多工作,特别是如果你不使用ajax。真正容易的是实现Validateable(或者如果你扩展了ActionSupport它已经这样做了),然后添加/覆盖validate方法。如果您使用xml进行验证,请不要担心它们都会运行。

然后创建一个设置方法来填充所需的字段,并将其放在validate方法中的正确位置(可能是第一行)。由于这将始终在执行之前运行,因此可能会减小执行方法的大小。