java - How does Spring annotation @SessionAttributes work -


i new spring please forgive me if question seems dumb.

i unable @sessionattributes (along @modelattribute) work in spring controller. doing wrong? here code ...

@controller @sessionattributes("myattribute") public class mycontroller {  @modelattribute("myattribute") public string createmysessionattribute() {     system.out.println("inside of createmysessionattribute");     return new string("mysessionattribute"); }  //......  @requestmapping("/dosomething.do") public modelandview dosomething(httpsession session, httpservletrequest request) {      string sessionattribute = (string)session.getattribute("myattribute");     string requestattribute = (string)request.getattribute("myattribute");     string requestsessionattribute = (string)request.getsession().getattribute("myattribute");      system.out.println(" sessionattribute = " + sessionattribute             + "; requestattribute = " + requestattribute             + "; requestsessionattribute = " + requestsessionattribute              );       modelandview modelandview = new modelandview("nextpage");      return modelandview; } } 

and here output...

inside of createmysessionattribute sessionattribute = null; requestattribute = null; requestsessionattribute = null  

i expected ...

inside of createmysessionattribute sessionattribute = mysessionattribute; requestattribute = mysessionattribute; requestsessionattribute = mysessionattribute 

note tried retrieving attribute request, session, , seesion request (which redundant)

thanks

it won't put value session until end of request.

if want use value of myattribute in dosomething method, this:

/* should have been called @writemodelattribute when used */ @modelattribute("myattribute") string writemodelattribute() {     return "myattribute value"; }  /* should have been called @readmodelattribute when used */ modelandview dosomething(@modelattribute("myattribute") string myattribute) {    system.out.println(myattribute);  //=myattribute value    ... } 

see @modelattribute annotation, when use it?


Comments