隨筆-348  評論-598  文章-0  trackbacks-0
          今天開發的測試的時候碰到一個問題,就是用Myfaces的SelectOneRadio空間的時候,頁面第一次展現沒問題,當我使用上一步切換tab再下一步的時候就拋出了異常,異常如下:
          Caused by: javax.faces.convert.ConverterException: java.lang.ClassCastException: org.apache.myfaces.shared_impl.renderkit.RendererUtils$1
          cannot be cast to java.lang.Boolean
          at javax.faces.convert.BooleanConverter.getAsString(BooleanConverter.java:91)
          at org.apache.myfaces.shared_impl.renderkit.RendererUtils.getConvertedStringValue(RendererUtils.java:630)
          at org.apache.myfaces.shared_impl.renderkit.html.HtmlRadioRendererBase.encodeEnd(HtmlRadioRendererBase.java:91)
          at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:624)
          ... 110 more
          Caused by: java.lang.ClassCastException: org.apache.myfaces.shared_impl.renderkit.RendererUtils$1
          cannot be cast to java.lang.Boolean
          at javax.faces.convert.BooleanConverter.getAsString(BooleanConverter.java:87)
          ... 113 more

          后來在國外網站上面找到了問題所在:

          Hello,

          the problem still exists in MyFaces Core 1.2.6.

          I have a selectOneMenu with a value binding to a boolean property.

          In the boolean converter the ClassCastException still occurs.

          ...
          Caused by: javax.faces.convert.ConverterException: java.lang.ClassCastException: org.apache.myfaces.shared_impl.renderkit.RendererUtils$1
          cannot be cast to java.lang.Boolean
          at javax.faces.convert.BooleanConverter.getAsString(BooleanConverter.java:91)
          at org.apache.myfaces.shared_impl.renderkit.RendererUtils.getConvertedStringValue(RendererUtils.java:630)
          at org.apache.myfaces.shared_impl.renderkit.html.HtmlRadioRendererBase.encodeEnd(HtmlRadioRendererBase.java:91)
          at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:624)
          ... 110 more
          Caused by: java.lang.ClassCastException: org.apache.myfaces.shared_impl.renderkit.RendererUtils$1
          cannot be cast to java.lang.Boolean
          at javax.faces.convert.BooleanConverter.getAsString(BooleanConverter.java:87)
          ... 113 more

          In RendererUtils there are some tests that value equals NOTHING. However the equals method
          of the NOTHING-Serializable isn't overriden. Therefore it has no effect.

          Overriding the equals method as in the patch of paul works.


          有些東西沒有實現,導致了這個問題。這個可能需要你自己簡單實現一下源文件然后編譯成庫文件了,感覺麻煩就換成了SelectOneMenu了。
          后面有時間再看了





          ---------------------------------------------------------
          專注移動開發

          Android, Windows Mobile, iPhone, J2ME, BlackBerry, Symbian
          posted on 2009-12-03 20:34 TiGERTiAN 閱讀(1317) 評論(0)  編輯  收藏 所屬分類: JavaJSF
          主站蜘蛛池模板: 澄江县| 丰顺县| 密云县| 灌阳县| 上蔡县| 宁国市| 富顺县| 三河市| 淄博市| 乐东| 繁峙县| 长兴县| 正蓝旗| 明水县| 呼和浩特市| 尤溪县| 东海县| 肥城市| 茌平县| 吉林市| 墨江| 天柱县| 泸溪县| 呼玛县| 瑞丽市| 潜山县| 且末县| 桃源县| 延边| 邻水| 蛟河市| 社旗县| 砚山县| 东乌珠穆沁旗| 双辽市| 崇仁县| 永春县| 汤阴县| 万宁市| 河池市| 灌阳县|