2012-06-19 40 views
5

Đây có phải là cách lưu trữ giá trị đúng trong phiên trong Struts2 không?Phiên trong Struts 2

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

bạn có thể làm điều đó, nhưng cách ưu tiên là thực hiện giao diện SessionAware. Đọc [ở đây] (http://struts.apache.org/2.0.6/docs/how-do-we-get-access-to-the-session.html) và [tại đây] (http: // splinter. com.au/how-to-use-sessions-with-struts-2) để biết thêm thông tin. – Jasonw

+0

các liên kết rất hữu ích, cảm ơn. –

+1

Nhận đối tượng phiên từ actionContext không phải là một vấn đề bởi vì nó được thực hiện trên TheadLocal mặc dù nó không phải là một thực hành tốt. –

Trả lời

1

Giao diện SessionAware trong thanh công cụ 2.x, lớp Hành động cần thực hiện giao diện SessionAware để nhận hành vi Phiên HTTP vào lớp Hành động của chúng tôi.

Nếu chúng ta thực hiện từ giao diện SessionAware, chúng ta cần ghi đè phương thức setSession() bằng SessionAware trong lớp hành động của chúng ta. Nếu chúng ta triển khai lớp hành động của chúng ta từ giao diện SessionAware thì trình điều khiển struts 2 không tiêm chính xác đối tượng session, nhưng nó sẽ tiêm một đối tượng Map với hành vi tương tự.

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

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


     return SUCCESS; 
    } 
Các vấn đề liên quan