隨筆 - 3, 文章 - 152, 評論 - 17, 引用 - 0
          數據加載中……

          [原創]CDI(Weld)創建了多個@sessionScoped的bean的實例?

          問題是這樣的...
          按照Core JSF 3rd里面第三章做了quiz的練習。
          運行起來發現QuizBean里面的response無論如何也取不到值。結果總為""。
          Debug發現response的set成功了,但是一到answerAction()方法,response就恢復為初始狀態。
          懷疑是否多次重復創建實例。即setResponse的實例跟被調用answerAction()的不是同一個實例。
          添加構造函數,并且在構造函數里面添加了System.out.println("xxx init");結果發現果然是多次創建實例。
          結論,sessionScoped沒有起作用。google之。發現有個兄弟跟我有同樣的問題。見下連接http://community.jboss.org/thread/173555

          根據Nicklas的回答,重新檢查了下注釋。

          結果如下。
          javax.inject.Named與javax.enterprise.context.SessionScoped同為CDI的注釋。
          javax.faces.bean.ManagedBean與javax.faces.bean.SessionScoped為JSF的注釋。

          如果要使用CDI那注冊也需要使用CDI的方式來注冊即Named。否則將無法找到。
          我的問題是使用了javax.inject.Name并且使用了javax.faces.bean.SessionScoped。所以CDI在session里找不到實例。故重復創建了實例。@import url(http://www.aygfsteel.com/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);

          posted on 2012-01-10 11:08 閱讀(816) 評論(0)  編輯  收藏 所屬分類: JSF2.0


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 新竹县| 广东省| 民丰县| 合川市| 石家庄市| 九寨沟县| 宜州市| 浙江省| 连山| 潍坊市| 新乐市| 昌乐县| 安乡县| 河北区| 化州市| 延安市| 庆安县| 勃利县| 高雄市| 漠河县| 崇州市| 微博| 昔阳县| 邵阳市| 平昌县| 松桃| 宜兰县| 锦屏县| 新兴县| 井研县| 潼关县| 册亨县| 广水市| 邻水| 三门峡市| 方正县| 南雄市| 清河县| 贡嘎县| 辽阳县| 安多县|