2011-04-12 147 views
0

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

但问题是在验证时。我已经设置populateFormAction输入如下结果

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

但当它返回form.jsp,它不显示验证错误。我认为这是因为在Action handler和form.jsp之间使用了populateFormAction。

+0

重定向是问题 – 2011-04-12 13:15:40

回答

2

有两种解决方案,您的问题

  1. 呼叫时,填充 组合的方法,EFORE返回输入(如果 有任何验证错误)。然后 然后不使用类型重定向,而是 直接移动到您的form.jsp。 当然,如果 你有填充组合和 验证方法在相同的动作 类,这将是可能的。

  2. 传递你采取行动的错误作为参数传递给populateFormAction 作为follows.Take看看here

我不能肯定是否会出现“S” actionError与否之后,所以尽量都

+0

嗨Anu谢谢你的回答,但是我对你的建议感到有些怀疑。对于1st:我正在使用默认的struts-2验证,而不是通过任何方法。对于2nd:填充值取自db,因此可能会有更多值,所以我认为在xml中添加参数是不可行的。 – shin 2011-04-18 04:18:57

+1

如果您使用的是validation.xml,那么ya 1st不是解决方案。对于第二个i正在讨论将错误作为参数传递给struts.xml中的db值。我发现[这个链接](http://glindholm.wordpress.com/2008/07/02/preserving-messages-across-a-redirect-in-struts-2/)我认为对你有用 – anu 2011-04-18 06:41:24

+0

结果是在这种情况下输入“链”有用吗? – shin 2011-04-18 08:29:53

1

你可以使用“MessageStoreInterceptor”来保存这些消息。