隨筆-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 閱讀(1322) 評論(0)  編輯  收藏 所屬分類: JavaJSF
          主站蜘蛛池模板: 都兰县| 涟源市| 北京市| 驻马店市| 邵东县| 轮台县| 中宁县| 吉安市| 府谷县| 灯塔市| 盱眙县| 吴堡县| 开原市| 安丘市| 楚雄市| 堆龙德庆县| 朝阳市| 当涂县| 奈曼旗| 平潭县| 平度市| 泸州市| 华安县| 满城县| 基隆市| 牟定县| 南平市| 湾仔区| 遵义市| 金湖县| 眉山市| 山西省| 丹江口市| 绥化市| 嘉峪关市| 汾西县| 浦东新区| 江陵县| 巧家县| 永年县| 磐石市|