【问题标题】:SpringMVC Ajax validationSpringMVC Ajax 验证
【发布时间】:2012-09-16 21:32:06
【问题描述】:

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

我想使用 ajax 仅在我在视图上的字段中跳出时验证用户名字段,但我想调用我已经实现的验证并且只验证用户名字段。

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

【问题讨论】:

  • 是的,Controller 中使用@RequestMapping 注解的单独方法听起来是最直接的解决方案。

标签: spring validation jsp spring-mvc controller


【解决方案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]);
                 });

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-01
    • 2012-08-27
    • 1970-01-01
    • 2021-01-11
    相关资源
    最近更新 更多