Исключение org.springframework.validation.BeanPropertyBindingResult

Привет, я новичок в Spring Framework. Я сделал небольшой пример, в котором я пытался проверить свое поле ввода с помощью API проверки Spring. это код

@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";       

}

Но когда я отправляю from с пустым значением, это дает мне следующую ошибку

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 ]

person Chandan Sarma    schedule 17.07.2014    source источник


Ответы (1)


Пожалуйста, измените строку в вашем коде, которая показана ниже.

public String insertdata(
    @ModelAttribute("applicationForm") @Valid ApplicationFormBean applicationFormBean,
    BindingResult result,
    Model model,
    @RequestParam("file") MultipartFile file)

Как указано в этот учебник Spring MVC:

BindingResult должен появиться сразу после проверенного объекта модели, иначе Spring не сможет проверить объект и выдаст исключение.

В этом руководстве также упоминается эта проблема.

person ASADUL    schedule 18.07.2014
comment
Большой. Я боролся с этим в течение 2 часов.. И я только что вспомнил, что сделал ту же ошибку пару лет назад.. легко пропустить. - person gtiwari333; 10.11.2020