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 ]
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With