xp:selectItem value属性抛出转换错误

时间:2016-09-01 20:32:14

标签: xpages radio-group

在xp:RadioGroup中有xp:selectItem,它需要itemLabel xp的数据属性:selectItem是itemValue或value:
itemValue - 返回给服务器的值
value - 指定选择项的竞赛(可以是文字字符串或表达式)

在值和值中加载值itemValue抛出一个错误,例如

<xp:radioGroup  id="radioGroup" 
            layout="lineDirection" 
            dojoType="dijit/form/RadioButton" 
            styleClass="zmdi">

    <xp:selectItem  itemLabel='ssh' 
                itemValue="serverValue" 
                value="SelectionContentsValue">
    </xp:selectItem>

</xp:radioGroup>

抛出的错误是:

异常

Conversion Error setting value ''{0}'' for ''{1}''.
java.lang.IllegalArgumentException: Conversion Error setting value ''{0}'' for ''{1}''. 
com.sun.faces.util.Util.getSelectItems(Util.java:489)
com.sun.faces.renderkit.html_basic.SelectManyCheckboxListRenderer.encodeEnd(SelectManyCheckboxListRenderer.java:130)
com.ibm.xsp.renderkit.html_basic.RadioRenderer.encodeEnd(RadioRenderer.java:48)
com.ibm.xsp.renderkit.ReadOnlyAdapterRenderer.encodeEnd(ReadOnlyAdapterRenderer.java:180)
javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:1005)
com.ibm.xsp.component.UISelectOneEx.encodeEnd(UISelectOneEx.java:331)
com.ibm.xsp.util.FacesUtil.renderComponent(FacesUtil.java:858)

删除[value =&#34; SelectionContentsValue&#34;来自xp的属性:selectItem无问题地渲染radioGroup。

想法? THX

2 个答案:

答案 0 :(得分:1)

属性旨在评估为UISelectItem。

在这里,您将它分配给字符串“SelectionContentsValue”。

在渲染过程中,渲染器会询问radioGroup“请将您所有的selectItems给我”。

通过遍历它的子节点并检查每个子节点是否为UISelectItem来实现此目的。

对于找到的每个UISelectItem,它会评估属性。

  • 如果value的计算结果为null,则会检查itemLabel,itemValue等,并使用这些属性创建selectItem。
  • 如果值评估为UISelectItem,则它将使用此UISelectItem
  • else如果value的计算结果不是UISelectItem,则会抛出IllegalArgumentException

您的情况是抛出IllegalArgumentException,因为您已将字符串分配给'value'属性而不是UISelectItem

因此,您应该使用itemLabel,itemValue属性并以这种方式手动设置这些选项。或者您可以使用value属性将selectItem计算为已在其他位置准备的selectItem,或者是动态加载的。一个managedBean或范围变量。

我希望这有助于让我知道是否有任何问题

答案 1 :(得分:0)

谢谢卡梅隆,你的评论引发了一个追踪的想法,我在这里找到了:
IBM Domino Designer> IBM Domino Designer 9.0.0> IBM Domino Designer User Guide> Designing XPages applications> Adding controls> Control reference selectItems - Selection Items

»复选框每个都可以选中“真实”,没有复选框的互斥性 复选框有点像嬉皮士,“这都是很酷的男人” »单选按钮更加挑剔:
 enter image description here

»对于每个选择选项,无线电都需要itemLabel和itemValue别名可选:

enter image description here

»'value'数据属性用于复选框。值包含管道分隔的选择值,位于复选框选项的数组/向量中。

<xp:checkBoxGroup id="checkBoxGroup1" value="#{document1.fruit}">
    <xp:selectItems>
        <xp:this.value>
                <![CDATA[${javascript:["Apples|apples|Garden of Eden|false","Oranges|oranges"]}]]>
        </xp:this.value>
    </xp:selectItems>
</xp:checkBoxGroup>

enter image description here