αƞj*_*jiβ 3 java validation spring spring-validator
我已经实现了我的自定义类的列表,在此提到的验证岗位.这里参考我的代码看起来像
class TopDtoForm {
  @NotEmpty
  private String topVar;
  private List<DownDto> downVarList;
  //getter and setter
}
class DownDto {
  private Long id;
  private String name;
  //getter and setter
}
@Component
public class TopDtoFormValidator implements Validator {
  @Override
  public boolean supports(Class<?> clazz) {
    return TopDtoForm.class.equals(clazz);
  }
  @Override
  public void validate(Object target, Errors errors) {
    TopDtoForm topDtoForm = (TopDtoForm) target;
    for(int index=0; index<topDtoForm.getDownVarList().size(); index++) {
        DownDto downDto = topDtoForm.getDownVarList().get(index);
        if(downDto.getName().isEmpty()) {
            errors.rejectValue("downVarList[" + index + "].name", "name.empty");
        }
    }
  }
}
所以即使我发送空名绑定结果有0错误.我测试了topVar,它工作正常.我的问题是我是否必须做任何其他配置才能使用此验证器?
谢谢
在Spring MVC中,只需在TopDtoForm中注释您的列表@Valid并添加@NotEmpty到DownDto.Spring会验证它很好:
class TopDtoForm {
  @NotEmpty
  private String topVar;
  @Valid
  private List<DownDto> downVarList;
  //getter and setter
}
class DownDto {
  private Long id;
   @NotEmpty
  private String name;
  //getter and setter
}
然后在RequestMapping中:
@RequestMapping(value = "/submitForm.htm", method = RequestMethod.POST) public @ResponseBody String saveForm(@Valid @ModelAttribute("topDtoForm") TopDtoForm topDtoForm, BindingResult result) {}
还要考虑从切换@NotEmpty到@NotBlank同样检查白色字符(空格,制表符等)
| 归档时间: | 
 | 
| 查看次数: | 5606 次 | 
| 最近记录: |