2011-08-16 38 views
1

它迟到而且很累,但这个问题让我疯狂。Struts2验证 - 在验证失败时重新填充儿童

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

struts2-Action有一个名为edit()的方法,它将在窗体显示之前运行。该方法使用提供的id参数并从数据库中检索完整的实体(包括孩子)。 因此,表单很好地与儿童信息一起显示。

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

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

回答

1

这晚,我已经厌倦了太多,但我的头顶部:

我可能会使用AJAX避免了这个问题(也就是使动作分成较小的部分,因为一个服务似乎是与另一个无关,即显示孩子不需要与更新实体绑定)。

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

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

+0

完美。不知道Validateable,但那正是我需要的。 – user829237