SpringMVC Ajax验证

时间:2012-09-16 21:32:06

标签: spring validation jsp spring-mvc controller

我有一个Spring Mvc 3表单,POST到控制器,在控制器中我调用执行DML语句。我还有一个单独的验证类,它实现了Validator,并在我的Controller中调用。我在那里进行简单和复杂的验证,例如检查用户名是否存在,如果存在则返回错误消息。

我想使用ajax来验证视图中字段外的用户名字段,但我想调用已经实现的验证,并且只验证用户名字段。

我怎样才能实现这一点,我是否需要在Ajax中调用Controller类并有一个单独的@RequestMapping来处理它?我可以举例说明如何实施。

2 个答案:

答案 0 :(得分:8)

我在SpringFramework网站上阅读了一篇关于此问题的非常好的教程文章。

请参阅此link。而这link也是。

希望这会对你有所帮助。欢呼声。

答案 1 :(得分:1)

  

//在控制器端添加

if(result.hasErrors() ){
        for (Object object : result.getAllErrors()) {
            if(object instanceof FieldError) {
                FieldError fieldError = (FieldError) object;
                String message = messageSource.getMessage(fieldError, null);
                logger.info("Error : " +  message + " - "  + fieldError.getField());
                errors.add(fieldError.getField() + "#" + message);
            }
        }
        response.setStatus("FAIL");
        response.setResult(errors);
  

在ajax响应之后,在各个结果字段上设置错误

$.each(response.result, function(index, errorString){

                     var array = errorString.split("#");
                     $('[for="' +array[0]+ '"]').html(array[1]);
                 });