model view controller - Migrating to Spring MVC 4 -
we migrating our mvc code spring 4. had a method formbackingobject converted method initform. trouble - in previous controller extending simpleformcontroller, formbackingobject getting called before submit method. have removed simpleformcontroller. initform getting called only once on page load. doesn't called before submit. , there custom logic of creating user object , adding userprofileform object.
have faced similar issue.
old code
    protected object formbackingobject(httpservletrequest request) throws exception {            final userprofileform userprofileform = new userprofileform();     final string id = request.getparameter("id");     if (id != null && !id.trim().equals("")) {         final user user = authenticationservices.finduser(servletrequestutils.getlongparameter(request, "id"));         userprofileform.setuser(user);     } else {         final user user = new user();         userprofileform.setuser(user);     }     return userprofileform; }   new code
@requestmapping(method = requestmethod.get) public string initform(httpservletrequest request, modelmap model) throws exception{     final userprofileform userprofileform = new userprofileform();     final string id = request.getparameter("id");     if (id != null && !id.trim().equals("")) {         final user user = authenticationservices.finduser(servletrequestutils.getlongparameter(request, "id"));         userprofileform.setuser(user);     } else {         final user user = new user();         userprofileform.setuser(user);     }     addtomodel(request, model);     model.addattribute("userprofileform", userprofileform);     return "user-management/user-profile"; }      
create method annotated @modelattribute fill model.
@modelattribute("userprofileform"); public userprofileform formbackingobject(@requestparam(value="id", required=false) long id) throws exception{     final userprofileform userprofileform = new userprofileform();     if (id != null) {         final user user = authenticationservices.finduser(id);         userprofileform.setuser(user);     } else {         final user user = new user();         userprofileform.setuser(user);     }     return userprofileform;  }  @requestmapping(method = requestmethod.get) public string initform() {     return "user-management/user-profile"; }   this way can use @requestparam annotation instead of pulling out parameters yourself. 
see the reference guide more information on subject.
Comments
Post a Comment