<form:errors>使用注意

41 篇文章 0 订阅
32 篇文章 0 订阅

表单验证方法:

利用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的对象名称相同。


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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值