java - Spring @SessionAttribute how to retrieve the session object in same controller -
i using spring 3.2.0 mvc. in have store 1 object session. using httpsession set , attribute store , retrieve value.
it returns string not object. want use @sessionattribute when tried sets object in session not retrieve session object
@requestmapping(value = "/sample-login", method = requestmethod.post) public string getloginclient(httpservletrequest request,modelmap modelmap) { string username = request.getparameter("username"); string password = request.getparameter("password"); user user = sample.createclient(username, password); modelmap.addattribute("userobject", user); return "user"; } @requestmapping(value = "/user-byname", method = requestmethod.get) public @responsebody string getuserbyname(httpservletrequest request,@modelattribute user user) { string fas= user.tostring(); return fas; }
both methods in same controller. how use retrieve object?
@sessionattributes
annotation used on class level :
- mark model attribute should persisted httpsession after handler methods executed
- populate model saved object httpsession before handler methods executed -- if 1 exists
so can use alongside @modelattribute
annotation in example:
@controller @requestmapping("/counter") @sessionattributes("mycounter") public class countercontroller { // checks if there's model attribute 'mycounter', if not create new one. // since 'mycounter' labelled session attribute persisted // httpsession @requestmapping(method = get) public string get(model model) { if(!model.containsattribute("mycounter")) { model.addattribute("mycounter", new mycounter(0)); } return "counter"; } // obtain 'mycounter' object user's session , increment @requestmapping(method = post) public string post(@modelattribute("mycounter") mycounter mycounter) { mycounter.increment(); return "redirect:/counter"; } }
also don't forget common noobie pitfall: make sure make session objects serializable.
Comments
Post a Comment