0

Now I have following controller method signature:

@ResponseBody
    @RequestMapping(value = "/member/createCompany/addParams", method = RequestMethod.POST)
    public ResponseEntity setCompanyParams(
            @RequestParam("companyName") String companyName,
            @RequestParam("email") String email,               
            HttpSession session, Principal principal) throws Exception {...}

I need to add validation for input parameters. Now I am going to create object like this:

class MyDto{
    @NotEmpty            
    String companyName;
    @Email // should be checked only if principal == null
    String email;   
}

and I am going to write something like this:

@ResponseBody
@RequestMapping(value = "/member/createCompany/addParams", method = RequestMethod.POST)
public ResponseEntity setCompanyParams( MyDto myDto, Principal principal) {
    if(principal == null){
        validateOnlyCompanyName(); 
    }else{
         validateAllFields();
    }
    //add data to model
    //return view with validation errors if exists.
}

can you help to achieve my expectations?

gstackoverflow
  • 36,709
  • 117
  • 359
  • 710

1 Answers1

0

That's not the way Spring MVC validations work. The validator will validate all the fields and will put its results in a BindingResult object.

But then, it's up to you to do a special processing when principal is null and in that case look as the validation of field companyName :

@ResponseBody
@RequestMapping(value = "/member/createCompany/addParams", method = RequestMethod.POST)
public ResponseEntity setCompanyParams(@ModelAttribute MyDto myDto, BindingResult result,
        Principal principal) {
    if(principal == null){
        if (result.hasFieldErrors("companyName")) {
            // ... process errors on companyName Fields
        } 
    }else{
         if (result.hasErrors()) { // test any error
             // ... process any field error
         }
    }
    //add data to model
    //return view with validation errors if exists.
}
Serge Ballesta
  • 143,923
  • 11
  • 122
  • 252
  • I think that you didn't understand my question. please read continue of my question http://stackoverflow.com/questions/29616089/formerrors-doesnt-render-on-jsp – gstackoverflow Apr 13 '15 at 22:34