ADF selectItem标记不会生成预期的HTML

时间:2013-09-24 20:30:37

标签: oracle-adf

我正在尝试在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

1 个答案:

答案 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>