2012-06-19 24 views
5

È questo il modo corretto di memorizzare un valore nella sessione in Struts2?Session in Struts 2

Map<String, Object> session = ActionContext.getContext().getSession(); 
session.put("user", "USERNAME"); 
+6

è possibile farlo, ma la via preferenziale è l'implementazione dell'interfaccia SessionAware. Leggi [qui] (http://struts.apache.org/2.0.6/docs/how-do-we-get-access-to-the-session.html) e [qui] (http: // splinter. com.au/how-to-use-sessions-with-struts-2) per ulteriori informazioni. – Jasonw

+0

link molto utili, grazie. –

+1

Ottenere oggetto sessione da actionContext non è un problema perché è implementato su TheadLocal anche se non è una buona pratica. –

risposta

1

interfaccia SessionAware a puntoni 2.x, la nostra classe di azione ha bisogno di implementare l'interfaccia SessionAware al fine di ottenere un comportamento di sessione HTTP nella nostra classe di azione.

Se implementiamo dall'interfaccia SessionAware dobbiamo eseguire l'override del metodo setSession() di SessionAware nella nostra classe di azioni. Se implementiamo la nostra action class dall'interfaccia SessionAware, allora il controller 2 strut non inserisce esattamente l'oggetto session, ma inietterà un oggetto Map con un comportamento simile.

Map m; 
public void setSession(Map m) 
    { 
     this.m=m; 
    } 

public String execute() 
    { 
     m.put("user", "USERNAME"); 


     return SUCCESS; 
    } 
Problemi correlati