您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

如何从BindingResult获取控制器中的错误文本

如何从BindingResult获取控制器中的错误文本

我仍然不使用Spring-MVC 3.0

但是我认为Spring 2.5使用的相同方法可以满足你的需求

for (Object object : bindingResult.getAllErrors()) {
    if(object instanceof FieldError) {
        FieldError fieldError = (FieldError) object;

        System.out.println(fieldError.getCode());
    }

    if(object instanceof ObjectError) {
        ObjectError objectError = (ObjectError) object;

        System.out.println(objectError.getCode());
    }
}

希望对你有用

更新

如果要获取资源包提供的消息,则需要一个注册的messageSource实例(它必须称为messageSource)

<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
    <property name="basenames" value="ValidationMessages"/>
</bean>

将你的MessageSource实例注入视图中

@Autowired
private MessageSource messageSource;

获取你的消息,请执行以下操作

for (Object object : bindingResult.getAllErrors()) {
    if(object instanceof FieldError) {
        FieldError fieldError = (FieldError) object;

        /**
          * Use null as second parameter if you do not use i18n (internationalization)
          */

        String message = messageSource.getMessage(fieldError, null);
    }
}

你的验证器应该看起来像

/**
  * Use null as fourth parameter if you do not want a default message
  */
errors.rejectValue("<FIELD_NAME_GOES_HERE>", "answerform.questionId.invalid", new Object [] {"123"}, null);
其他 2022/1/1 18:24:05 有369人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶