org.springframework.validation.BeanPropertyBindingResult Exception
Привет, я новичок в весенних рамках. Я сделал небольшой пример, в котором я попытался проверить свое поле ввода с помощью API проверки весны. Это код
@RequestMapping(value = "/applicationFormSubmit", method = RequestMethod.POST)
public String insertdata( @ModelAttribute("applicationForm") @Valid ApplicationFormBean applicationFormBean, @RequestParam("file") MultipartFile file, BindingResult result,Model model)
{
if(result.hasErrors())
{
return "applicationForm";
}
try {
Blob blob = Hibernate.createBlob(file.getInputStream());
// applicationFormBean..setFilename(file.getOriginalFilename());
applicationFormBean.setSignature(blob);
// applicationFormBean.setContentType(file.getContentType());
} catch (IOException e) {
e.printStackTrace();
}
applicationFormUserService.insertApplicationData(applicationFormBean);
return "applicationForm";
}
Но когда я отправляю из с пустым значением, он дал мне следующую ошибку
Field error in object 'applicationForm' on field 'applicantName': rejected value []; codes [NotEmpty.applicationForm.applicantName,NotEmpty.applicantName,NotEmpty.java.lang.String,NotEmpty]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [applicationForm.applicantName,applicantName]; arguments []; default message [applicantName]]; default message [Please enter your nnnn.]
Field error in object 'applicationForm' on field 'applicantName': rejected value []; codes [Size.applicationForm.applicantName,Size.applicantName,Size.java.lang.String,Size]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [applicationForm.applicantName,applicantName]; arguments []; default message [applicantName],20,2]; default message [this is worng ]
2 ответа
Пожалуйста, измените строку в вашем коде, которая показана ниже...
public String insertdata(
@ModelAttribute("applicationForm") @Valid ApplicationFormBean applicationFormBean,
BindingResult result,
Model model,
@RequestParam("file") MultipartFile file)
Что касается @ASADUL, я решил проблему также с изменением порядка подписи метода.
В моем случае это было рядом с
@ModelAttribute(FORM_MODEL_KEY) @Valid MemberForm memberForm
что вызывает ошибку.
@PostMapping(URLS.MEMBER_PROCESSING)
public String processMemberForm(@ModelAttribute(FORM_MODEL_KEY) @Valid MemberForm memberForm, HttpServletRequest request, BindingResult bindingResult, RedirectAttributes redirectAttributes) {
Я изменился на
@PostMapping(URLS.MEMBER_PROCESSING)
public String processMemberForm(@ModelAttribute(FORM_MODEL_KEY) @Valid MemberForm memberForm, BindingResult bindingResult, HttpServletRequest request, RedirectAttributes redirectAttributes) {
Обратите внимание, что
HttpServletRequest request
должен поставить следующий после
BindingResult bindingResult
и
@ModelAttribute(FORM_MODEL_KEY) @Valid MemberForm memberForm, BindingResult bindingResult
должны быть в таком порядке.