美好的一天!
我按照this website中的说明使用了Struts2 xml验证。
问题是我单击提交按钮两次。错误消息也会出现两次......
我的问题是......如何在处理另一个操作以容纳新的错误消息集之前清除第一条错误消息。
提前谢谢。
答案 0 :(得分:4)
如果您正在使用spring集成,则必须将bean定义为scope="prototype"
,然后为每个请求获取Action的新实例。
spring的默认范围是singleton。
为每个动作做这个都是个好主意。
答案 1 :(得分:2)
从表单标记中删除validate="true"
。
答案 2 :(得分:1)
默认堆栈中有一个验证程序拦截器。你只需要使用它并使用它非常简单。只需在您的动作类中使用名称public void validate()创建一个方法。在该validate()中,您可以使用他们的getter& amp;然后将所需的验证放到它们上面。
此外,通过此实现,您不必担心显示多条消息,因为它只会显示您在addFieldError方法中设置的消息,并删除以前保留的所有消息。
注意:确保在validate()中使用变量的getter,因为在调用此拦截器时动作中的变量未设置。
这是一个非常好的教程的链接。
http://www.vaannila.com/struts-2/struts-2-example/struts-2-validation-example-1.html
答案 3 :(得分:0)
如果你将保持validate = false,那么将在提交动作时调用验证xml。
要清除每次提交点击的消息,如果您在jsp中使用表格,请将表格保留在表格之外。它会起作用。