我使用h:selectOneListBox在其中动态添加数据。最初是空的。每次用户按下“添加”按钮,列表框中都会添加一个条目。
我已经指定了列表框的特定高度。问题是listbox只有一个条目时的外观。它看起来像指定高度的下拉菜单,而不是列表框。如果它有多个条目,它看起来很好。
需要知道的是,如果有任何方法可以控制selectOneListBox的大小为1时的外观。在下面的代码中,假设backingBean.names只返回一个select项。

<div style="height: 400px">
<h:selectOneListbox id="names" style="width:100%; height:100%; "
  value="#{backingBean.selectedName}">
<f:selectItems value="#{backingBean.Names}" />
</h:selectOneListbox>
</div>

最佳答案

您需要显式地将大小指定为2或更大,否则它实际上将默认为可用select项的大小。

<c:set var="size" value="#{fn:length(backingBean.names)}" />
...
<h:selectOneListbox ... size="#{size gt 1 ? size : 2}">

09-07 21:32