我的用例:单个html表单可以作为保存或更新事件触发。根据事件,验证由不同的验证器执行。到目前为止,这使用以下代码。我唯一的问题是,我希望将字段错误映射到" saveDto",以便我可以在我的表单中映射它们。
欢迎任何提示。
@Inject
private SaveValidator saveValidator;
@Inject
private UpdateValidator updateValidator;
@RequestMapping(value = EVENT_SAVE, method = RequestMethod.POST)
protected String doSave(@Valid @ModelAttribute("saveDto") final SaveDto saveDto,
final BindingResult bindingResult, final Model model, final HttpServletRequest request)
{
if (bindingResult.hasErrors())
{
// ...
}
}
@RequestMapping(value = EVENT_UPDATE, method = RequestMethod.POST)
protected String doUpdate(@Valid @ModelAttribute("updateDto") final SaveDto saveDto,
final BindingResult bindingResult, final Model model, final HttpServletRequest request)
{
if (bindingResult.hasErrors())
{
// ...
}
}
@InitBinder("saveDto")
protected void initSaveValidator(final WebDataBinder binder)
{
binder.addValidators(saveValidator);
}
@InitBinder("updateDto")
protected void initUpdateValidator(final WebDataBinder binder)
{
binder.addValidators(updateValidator);
}
答案 0 :(得分:1)
尝试使用hibernate验证组功能以及@Validated注释