<form:errors>使用注意

来源:互联网 发布:中国产业经济数据库 编辑:程序博客网 时间:2024/04/30 02:23

表单验证方法:

利用springmvc的表单验证来做;

首先需要在存的时候要将元素给验证一下:

需要注意的是:

需要给验证的对象加上@Valid,标识。

需要有一个对象存错误信息:BindingResult result

(然后如果是save方法,就需要给个重定向RedirectAttributes ra)

@RequestMapping(method = POST)    public String save(@PathVariable long typeId, @Valid ExField field, BindingResult result, RedirectAttributes ra) {        if (exFieldService.checkNameExist(field.getName(), typeId)) {            result.addError(new FieldError("exField", "name", i18n("Duplicate.field.name")));        }        if (result.hasErrors()) {            ra.addFlashAttribute("field", field);            ra.addFlashAttribute("org.springframework.validation.BindingResult.exField", result);            return "redirect:/XX";        }        ResourceType resourceType = resourceTypeService.findById(typeId);        field.setResourceType(resourceType);        exFieldService.save(field);        return "redirect:/XX";    }

protected String i18n(String message) {        return messageSource.getMessage(message, null, null);    }

这里需要注意一下:new FieldError时,第一个参数不能是field;

然后页面上也要注意下:由于我们使用的是<form:errors>,这是springmvc提供的,需要引入:

<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%>

比如说验证的是name:

<input type="text" class="form-control" id="name" name="name" value="${field.name }"><form:errors path="exField.name" cssClass="error" />
名字为exField,与new FieldError的对象名称相同。


而如果是修改对象,那么就不用重定向。


1 1
原创粉丝点击