【问题标题】:How to remember input field values when Spring form validation fails?Spring表单验证失败时如何记住输入字段值?
【发布时间】:2014-03-18 01:12:30
【问题描述】:
问题说明了一切,每当 Spring 验证失败并且 Spring 再次重新呈现表单页面时,非 Spring 输入元素,即那些没有 <form:input..> 结构的元素就会失去其价值。我想记住这些值并将它们与错误消息一起重新显示。我怎样才能做到这一点?
此外,当 Spring 在表单验证失败时再次重新呈现此视图时,不会调用 $(document).ready() 函数。为什么这不会被调用。发生这种情况时,我想清除密码字段。
【问题讨论】:
标签:
html
spring
validation
input
spring-form
【解决方案1】:
这是一个很好的问题。
在我们的例子中,我们没有使用 Spring 验证,因为我们在我们的类上实现了验证。
但是,如果您使用“@Validation”注释来验证您的表单/bean,则可以使用以下方法
@RequestMapping(value = "/signup", method = RequestMethod.POST)
public String addCustomer(@Valid Customer customer, BindingResult result, ModelMap map) {
if (result.hasErrors()) {
//add your other validations here. those which are not included in your bean validation
//map.add(...);
return "SignUpForm";
} else {
return "Done";
}
}
然后在您的前端(.jsp、.xhtml、*.jsf 等)中,您可以通过“#{myValue}”之类的方式呈现这些值。
另外,对于您的第二个问题,我看到 '$(document).ready() ' 唯一不起作用的是,如果您使用 jquery 进行验证并将结果重新渲染到页面。
如果这有帮助,请告诉我。
干杯!