使用Spring MVC 3和JSP,我只是想測試用戶是否登錄,我不想使用Spring Security的目前測試,如果用戶在通過JSP登錄/ Spring的MVC
<jsp:useBean id="myAppUser" type="com.xxx.MyUser" beanName="myUser" scope="session" />
<c:choose>
<c:when test="myUser.loggedIn">
//dostuff
</c:when>
<c:otherwise>
//dootherstuff
</c:otherwise>
</c:choose>
但問題是,當會話中還沒有myAppUser時,jsp:useBean會引發異常。現在我意識到我可以擁有JSP:useBean實際上通過給它一個類來實例化對象,但我不喜歡知道某個JSP片段中的某個地方有對象被實例化並添加到我的會話中,所以我要麼總是爲該用戶設置一個初始值,並以編程方式對其進行控制,或者我想要一種方法來獲取該bean,使其不存在或不存在,如果它不存在,則返回null無論哪種方式將罰款
如果我的問題點到了我應該做的,請提供一個鏈接到文件的基本誤解,將詳細解釋這個用例
這是我想要的,但我不知道該怎麼做,你所描述的實際上就是我正在做的事情。myAppUser對象是我的業務用戶代碼的一個複合對象,我想要控制它何時被實例化以及如何重新讀取問題你會看到我所要求的是你所描述的,但問題是我不知道如何實現它。你還會注意到你的解決方案有同樣的問題,如果我需要說註銷(用戶),用戶來自哪裏? – walnutmon 2010-06-04 16:27:16
沒有'註銷(用戶)',它只是'logout()'。 'UserManager'本身已經有登錄的'User'引用爲屬性,由'login(User)'傳入。 – BalusC 2010-06-04 16:33:24
你在說UserManager,我只是把它稱爲User,但它們是一樣的東西,我的控制器進行一次服務調用,它返回帶有業務代碼的用戶對象,該代碼抽象出「登錄」實際上意味着什麼以及許多其他事情,我可以稱之爲經理,我想,但我的問題仍然是完全一樣的。經理可能還沒有定義,因爲如果他們沒有登錄,那麼創建經理並將其放置在會話中的代碼還沒有運行。這聽起來像你說的是在spring config – walnutmon 2010-06-04 16:38:49