Spring MVC @ModelAttribute method -


question spring mvc @modelattribute methods, setting model attributes in controller @requestmapping method verses setting attribute individually @modelattribute methods, 1 considered better , more used?

from design point of view approach considered better following:

approach 1

@modelattribute("message") public string addmessage(@pathvariable("username") string username, modelmap model) {    logger.info("addmessage - " + username);   return "spring 3 mvc hello world - "  + username; }  @requestmapping(value="/welcome/{username}", method = requestmethod.get) public string printwelcome(@pathvariable("username") string username, modelmap model) {    logger.info("printwelcome - " + username);   return "hello"; }    

approach 2

@requestmapping(value="/welcome/{username}", method = requestmethod.get) public string printwelcome(@pathvariable("username") string username, modelmap model) {    logger.info("printwelcome - " + username);    model.addattribute("message", "spring 3 mvc hello world - "  + username);    return "hello"; }    

one not better other. both serve purpose.

  • method: if need model particular controller populated attributes method level @modelattribute makes more sense.
  • parameter: use on parameter when want bind data request , add model implicitly.

to answer question on better approach

i approach 2 better since data specific handler.


Comments