spring mvc - SpringBoot/MVC & Thymleaf form validation on POST with URL parameters -


i have form , validation works. problem comes in when url parameter added. url parameter token , required. controller looks like:

@requestmapping(value = "/resetpassword", method = requestmethod.get) public string showresetform(resetpassword resetpassword, model model,         @requestparam(value = "token", required = true) string token,         @requestparam(value = "msg", required = false) string msg){               model.addattribute("token", token);      return "resetpassword"; }  @requestmapping(value = "/resetpassword", method = requestmethod.post) public string setpwd(@modelattribute("resetpassword") @valid resetpassword resetpassword,// redirectattributes redirectattr,                      bindingresult bindingresult, model model,                      @requestparam(value = "token", required = true) string token,                      @requestparam(value = "msg", required = false) string msg){      if (bindingresult.haserrors()) {             //redirectattr.addflashattribute("org.springframework.validation.bindingresult.resetpassword",bindingresult);             //redirectattr.addflashattribute("resetpassword",resetpassword);                     return "resetpassword?token="+token;     }      else {                   if (token == null) {             // todo: no token, here??             return "redirect:/resetpassword?token=\"\"&msg=notoken";         }         resetpasswordresponsedto response = super.resetuserpassword(                 resetpassword.getuname(), resetpassword.getpassword(),                 token);         if (response.getpasswordresetresult() == passwordresetresult.successful) {             // todo: worked, now?             return "redirect:/login";         } else if (response.getpasswordresetresult() == passwordresetresult.invalid_token) {             // todo: bad token             return "redirect:/resetpassword?token="+token+"&msg=badtoken";         } else if (response.getpasswordresetresult() == passwordresetresult.out_of_policy_pw) {             // todo: out of policy pw             return "redirect:/resetpassword?token="+token+"&msg=outofpolicy";         } else if (response.getpasswordresetresult() == passwordresetresult.ldap_failure) {             // todo: other failure             return "redirect:/resetpassword?token="+token+"&msg=error";         }     }     return "redirect:/resetpassword?token="+token+"&msg=error";     //return new redirectview("resetpassword?token=\"\"&msg=notoken"); } 

so tried bunch of things nothing seems work. here happen when view requested /resetpassword?token=1232453 view displayed. if form has errors url parameter persists in url , form displays errors. right error saying template cannot resolved. ok fair enough, tried doing redirect instead

return "redirect:/resetpassword?token="+token; 

and seems work, url parameter lost , view loses bindingresult errors. in code, posted tried flashattributes error "validation failed object='resetpassword'. error count: 4" correct need show form , errors coded thymeleaf. or suggestions great!

resources have looked at: spring - redirect after post (even validation errors) & springmvc controller: how stay on page if form validation error occurs

have tried returning modelandview instead of redirect string? attributes on model available url query parameters.

modelandview redirect = new modelandview("redirect:/resetpassword"); redirect.addobject("token", token); redirect.addobject("msg", "error"); return redirect;