/** * 验证失败返回true * * @param m * @param result * @return */ @Override protected boolean hasError(Sample m, BindingResult result) { Assert.notNull(m); // 字段错误 前台使用<es:showFieldError commandName="showcase/sample"/> 显示 if (m.getBirthday() != null && m.getBirthday().after(new Date())) { // 前台字段名(前台使用[name=字段名]取得dom对象) 错误消息键。。 result.rejectValue("birthday", "birthday.past"); } // 全局错误 前台使用<es:showGlobalError commandName="showcase/sample"/> 显示 if (m.getName().contains("admin")) { result.reject("name.must.not.admin"); } return result.hasErrors(); }
/** * 验证返回格式 单个:[fieldId, 1|0, msg] 多个:[[fieldId, 1|0, msg],[fieldId, 1|0, msg]] * * @param fieldId * @param fieldValue * @return */ @RequestMapping(value = "validate", method = RequestMethod.GET) @ResponseBody public Object validate( @RequestParam("fieldId") String fieldId, @RequestParam("fieldValue") String fieldValue, @RequestParam(value = "id", required = false) Long id) { ValidateResponse response = ValidateResponse.newInstance(); if ("name".equals(fieldId)) { Sample sample = getSampleService().findByName(fieldValue); if (sample == null || (sample.getId().equals(id) && sample.getName().equals(fieldValue))) { // 如果msg 不为空 将弹出提示框 response.validateSuccess(fieldId, ""); } else { response.validateFail(fieldId, "该名称已被其他人使用"); } } return response.result(); }