我有一个Spring Mvc 3表单,POST到控制器,在控制器中我调用执行DML语句。我还有一个单独的验证类,它实现了Validator,并在我的Controller中调用。我在那里进行简单和复杂的验证,例如检查用户名是否存在,如果存在则返回错误消息。
我想使用ajax来验证视图中字段外的用户名字段,但我想调用已经实现的验证,并且只验证用户名字段。
我怎样才能实现这一点,我是否需要在Ajax中调用Controller类并有一个单独的@RequestMapping来处理它?我可以举例说明如何实施。
答案 0 :(得分:8)
答案 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]);
});