我正在尝试在ADF中生成一个简单的选择。我试过这样的事情:
<af:selectOneChoice label="#{bindings.items.label}" id="soc1"
value="#{bindings.items.inputValue}"
required="#{bindings.items.hints.mandatory}">
<af:selectItem id="si3" value="L" label="Left"/>
<af:selectItem id="si3" value="R" label="Right"/>
</af:selectOneChoice>
根据af:selectItem
的文档,这应生成HTML <option>
标记,其中包含label=
和value=
内容,如源代码所示。然而,事实并非如此。 value=
属性更改为“1”,“2”(依此类推),并且日志文件中有一条消息,说明无法将它们转换为整数。如果我将值更改为“34”和“52”,只是为了看看会发生什么,它们仍然会更改为“1”和“2”。
文档清楚地说明了value =属性指定了要发送给服务器的值,并没有提到它应该是一个整数,或者提供的值将被替换为新值。
谁能告诉我我做错了什么?或者这只是它应该工作的方式?
以下是文档:http://jdevadf.oracle.com/adf-richclient-demo/docs/tagdoc/af_selectItem.html
答案 0 :(得分:2)
您需要将<af:selectOneChoice>
的valuePassThru属性设置为true。默认情况下,它设置为false,这使得值成为索引。
<af:selectOneChoice label="#{bindings.items.label}" id="soc1"
value="#{bindings.items.inputValue}"
valuePassThru="true"
required="#{bindings.items.hints.mandatory}">
<af:selectItem id="si3" value="L" label="Left"/>
<af:selectItem id="si3" value="R" label="Right"/>
</af:selectOneChoice>