2010-09-17 39 views
0

提交表單後,我收到了一個表單和一些顯示的文本。目前它執行以下操作:Wicket Sessions

User1鍵入一些文本並提交表單 - >獲得一些結果 User2進入站點並看到來自User1的輸入 - >必須刪除輸入並鍵入他自己的 - > get一個新的結果...

我想你會得到這個問題,User2不應該看到User1的輸入!另外我想爲User1存儲輸入的輸入。所以,如果他回到現場,他應該能夠看到他自己的數據,而不是其他任何東西!

我想我必須在這裏處理會議 - 我聽說Wicket在會話中表現良好,但我無法讓它工作。我嘗試了這樣的事情:

public class MainStartApplication extends WebApplication { 
    @Override 
    public Session newSession(final Request request, final Response response) { 
     return new MySession(request); 
    } 

    @Override 
    public Class<? extends WebPage> getHomePage() { 
     MySession.get().setUserId(user); 
    } 
} 

public class MySession extends WebSession { 
    private static final long serialVersionUID = 1L; 
    private String    userId; 

    public MySession(final Request request) { 
     super(request); 
    } 

    public static MySession get() { 
     return (MySession) WebSession.get(); 
    } 

    public void setUserId(final String userId) { 
     this.userId = userId; 
    } 

    public String getUserId() { 
     return userId; 
    }  
} 

但它沒有工作。 (沒有錯誤)

也許你可以給我一些提示?

P.S.我正在使用Tomcat v6!

回答

4

Wicket可以正確處理會話處理,而無需對WebApplicationWebSession進行子類化。

如果您發佈表單並查看給您帶來麻煩的代碼會更好,讓我們來幫助診斷真正的問題。

當然有些情況下子類是正確的,但我不清楚你是否有這種需求。

如果您實際上確實需要在會話中做某些事情,那麼從基本問題的背景下,您需要做的事情就會更加清晰。

0

Wicket的會話處理非常好,就像@Don Roby所說的那樣。一旦用戶登錄,我正在使用wicket會話主要存儲用戶信息。只要用戶仍然保持活動狀態,我就可以隨時獲取信息。

也許這個鏈接可以幫助你:Wicket Custom WebSession