0

这个问题说明了一切,每当 Spring 验证失败并且 Spring 再次重新呈现表单页面时,非 Spring 输入元素,即那些没有<form:input..>结构的元素就会失去其价值。我想记住这些值并将它们与错误消息一起重新显示。我怎样才能做到这一点?

此外,当 Spring 在表单验证失败时再次重新呈现此视图时,不会调用 $(document).ready() 函数。为什么这不会被调用。发生这种情况时,我想清除密码字段。

4

1 回答 1

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 进行验证并将结果重新呈现到页面。

让我知道这是否有帮助。干杯!

于 2014-03-18T02:15:49.740 回答