隨筆 - 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


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


          網站導航:
           
          主站蜘蛛池模板: 花莲县| 宁阳县| 沾益县| 湖南省| 巴南区| 安远县| 万盛区| 新疆| 墨玉县| 涪陵区| 平凉市| 灌云县| 邻水| 定结县| 海淀区| 翁牛特旗| 梅州市| 开远市| 澄江县| 东阿县| 清徐县| 乌兰察布市| 牟定县| 德安县| 沙河市| 射洪县| 金湖县| 甘洛县| 巢湖市| 乌兰浩特市| 麻江县| 汕尾市| 泾川县| 晋江市| 门源| 天台县| 遵义县| 商南县| 溧水县| 荆门市| 汽车|