1. 校驗(yàn)的錯(cuò)誤信息, 可以直接在bean屬性上配置, 也可以在properties中配置。
目前創(chuàng)新互聯(lián)已為近1000家的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)頁空間、網(wǎng)站改版維護(hù)、企業(yè)網(wǎng)站設(shè)計(jì)、邗江網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
2. 將校驗(yàn)器bean配置到注解驅(qū)動(dòng)上
3. 在需要校驗(yàn)的pojo前邊添加@Validated,在需要校驗(yàn)的pojo后邊添加BindingResult bindingResult接收校驗(yàn)出錯(cuò)信息
注意:@Validated和BindingResult bindingResult是配對出現(xiàn),并且形參順序是固定的(一前一后)。
使用validated所需配置:
1. jar包
2. application.xml
classpath:testErrMessages
3. testErrMessage.properties文件
文件結(jié)構(gòu):
文件內(nèi)容:
4. bean的配置, 省略get/set方法
public class ValidBean { //直接配置錯(cuò)誤信息 @NotBlank(message="用戶名不能為空", groups= {UserGroup1.class}) private String name; @Max(value=120, message="年齡最大為120") private Integer age; // 使用配置文件中的錯(cuò)誤信息, properties中的key: message="{key}"。 {}:占位符 @NotBlank(message="{validator.user.address}") private String address; }
5. controller
@Controller @RequestMapping("/test/") public class ValidTestController { /** * * @desc: 校驗(yàn)沒有分組的屬性 * @auth: zona * 2017年2月19日 下午2:35:42 * @param bean * @param bindingResult * @return */ @RequestMapping("valid") @ResponseBody public Result testValid(@Validated ValidBean bean, BindingResult bindingResult) { Result result = new Result(); Map retMap = new HashMap(); StringBuilder sb = new StringBuilder(); if(bindingResult.hasErrors()) { Listerrors = bindingResult.getAllErrors(); for (ObjectError err : errors) { sb.append(err.getDefaultMessage()+"; "); } result.setErrInfo(sb.toString()); result.setErrNo(1); return result; } retMap.put("bean", bean); result.success(); result.setData(retMap); return result; } /** * * @desc: 僅對屬于userGroup組的屬性進(jìn)行校驗(yàn) * @auth: zona * 2017年2月19日 下午2:37:03 * @param bean * @param bindingResult * @return */ @RequestMapping("group/valid") @ResponseBody public Result testGroupValid(@Validated(value=UserGroup1.class) ValidBean bean, BindingResult bindingResult) { Result result = new Result(); Map retMap = new HashMap(); StringBuilder sb = new StringBuilder(); if(bindingResult.hasErrors()) { List errors = bindingResult.getAllErrors(); for (ObjectError err : errors) { sb.append(err.getDefaultMessage()+"; "); } result.setErrInfo(sb.toString()); result.setErrNo(1); return result; } retMap.put("bean", bean); result.success(); result.setData(retMap); return result; } }
測試結(jié)果:
只校驗(yàn)沒有分組的屬性
校驗(yàn)UserGroup1組的屬性
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持創(chuàng)新互聯(lián)。