它已经很晚了,我很累,但这个问题让我感到很疯狂。
我有一张表格。此表单包含一些映射到实体的输入字段,并在提交时保留。 在同一页面上(但不是表格的一部分),我概述了这个实体的孩子。
struts2-Action有一个名为edit()的方法,它将在显示表单之前运行。此方法获取提供的id-parameter并从数据库中检索完整实体(包括子项)。 因此,表格可以很好地显示儿童信息。
然而。验证(serverside)出错时。实体对象不再有孩子。所有信息(表单字段本身除外)似乎都已消失。
即使在验证失败后,我该怎样做才能看到我的孩子?
答案 0 :(得分:1)
现在已经很晚了,我也很累,但是我的头脑却不知所措:
我本可以通过使用ajax避免这个问题(即将操作变为较小的部分,因为一个服务似乎与另一个服务无关,即显示子节点不必与更新实体相关联。) / p>
但这是很多工作,特别是如果你不使用ajax。真正容易的是实现Validateable(或者如果你扩展了ActionSupport它已经这样做了),然后添加/覆盖validate方法。如果您使用xml进行验证,请不要担心它们都会运行。
然后创建一个设置方法来填充所需的字段,并将其放在validate方法中的正确位置(可能是第一行)。由于这将始终在执行之前运行,因此可能会减小执行方法的大小。