gpt4 book ai didi

java - spring MVC 中的 validator 没有配置消息属性文件

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:04:58 24 4
gpt4 key购买 nike

我有这样的场景。

1。我有 jsp 文件,有两个字段:toDate 和 fromDate:

<form:form id="testForm" modelAttribute="testForm" action="testAction">
Name: <form:input path="name" />
From date: <form:input path="fromDate" id="fromDate" />
<form:errors path="fromDate" class="control-label" />
To date: <form:input path="toDate" id="toDate" />
<input id="mySubmitButton" type="submit" value="HELLO">
</form:form>

2。我有一个 Controller 来处理来 self 页面的请求,如下所示:

@Autowired
TestFormValidator validator;

@InitBinder
protected void initBinder(WebDataBinder binder) {
binder.setValidator(validator);
}
@RequestMapping(value = "/testAction", method = RequestMethod.POST)
public String doSomeThing(ModelMap model,
@ModelAttribute @Validated TestForm testForm, BindingResult result,
RedirectAttributes redirectAttrs) {
if (result != null && result.hasErrors()) {
return "hello";
}

3。我有 Validator 类来验证 TestForm:

@Component
public class TestFormValidator implements Validator {

@Override
public boolean supports(Class<?> clazz) {
return TestForm.class.equals(clazz);
}

@Override
public void validate(Object arg0, Errors errors) {
TestForm testForm = (TestForm) arg0;
if (testForm.getFromDate() != null
&& testForm.getFromDate().after(testForm.toDate)) {
errors.rejectValue("fromDate", "From date must not be after to date.");
}

}

4。是的,下面的代码是我想要的。但是我总是遇到异常:

org.springframework.context.NoSuchMessageException:在区域设置的代码“开始日期不能晚于日期..testForm.fromDate”下找不到消息...

5。我知道我错过了对 bean 的声明: messageSource

我的问题:

我想知道是否有任何方法可以在不声明消息属性文件的情况下返回错误消息?

提前致谢!!!

最佳答案

你可以试试Errors.rejectValue(String field, String errorCode, String defaultMessage)方法。因此,您的代码必须更改如下。

errors.rejectValue("fromDate", "error.invalidFromDate", "From date must not be after to date.");

在无法从消息源中找到错误代码的情况下,应该理想地使用 defaultMessage。

关于java - spring MVC 中的 validator 没有配置消息属性文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39923448/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com