Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

org.springframework.validation.BeanPropertyBindingResult Exception

Hi I am a new to spring framework. I have done a small example where I tried to validate my input field using spring validation api. This is the code

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

}

But when I submit the from with blank value its given me the following error

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 ]
like image 521
Chandan Sarma Avatar asked Jul 17 '14 11:07

Chandan Sarma


1 Answers

Regarding to @ASADUL I solved the problem also with changing the method's signature order.

In my case the HttpServletRequest request was next to @ModelAttribute(FORM_MODEL_KEY) @Valid MemberForm memberForm which causes the error.

@PostMapping(URLS.MEMBER_PROCESSING)
    public String processMemberForm(@ModelAttribute(FORM_MODEL_KEY) @Valid MemberForm memberForm, HttpServletRequest request, BindingResult bindingResult, RedirectAttributes redirectAttributes) {

I changed to

@PostMapping(URLS.MEMBER_PROCESSING)
    public String processMemberForm(@ModelAttribute(FORM_MODEL_KEY) @Valid MemberForm memberForm, BindingResult bindingResult, HttpServletRequest request, RedirectAttributes redirectAttributes) {

Note that HttpServletRequest request must put next after BindingResult bindingResult and @ModelAttribute(FORM_MODEL_KEY) @Valid MemberForm memberForm, BindingResult bindingResult must be in this order.

like image 98
Kevin O. Avatar answered Sep 18 '22 09:09

Kevin O.