隨筆 - 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 閱讀(813) 評論(0)  編輯  收藏 所屬分類: JSF2.0


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


          網站導航:
           
          主站蜘蛛池模板: 紫阳县| 什邡市| 梓潼县| 临沧市| 长兴县| 六安市| 松潘县| 拜泉县| 黑龙江省| 潍坊市| 乌海市| 五莲县| 崇文区| 河源市| 辉县市| 文水县| 湘阴县| 石狮市| 莫力| 乌兰浩特市| 攀枝花市| 嘉峪关市| 东源县| 秦安县| 武定县| 乌拉特前旗| 易门县| 文水县| 五台县| 五常市| 横山县| 富裕县| 泸溪县| 岳池县| 循化| 多伦县| 汝城县| 衡东县| 卢湾区| 岳池县| 萨嘎县|