2013-03-25 74 views
0

我有代码的<f:selectItems的itemDescription>不起作用

<p:selectOneMenu id="starter" value="#{reportRegisterManagedBean.starter}" style="width:160px" converter="#{reportStarterConverter}"> 
<f:selectItem itemLabel="Select Report Starter" itemValue="0" 
itemDescription="TEST" /> 
<f:selectItems 
value="#{reportRegisterManagedBean.startersSelectItems}" var="ds" itemLabel="#{ds.name}" itemValue="#{ds}" itemDescription="#{ds.description}" /> 
</p:selectOneMenu> 

这里itemDescription="TEST"属性附加伤害效果非常好于<f:selectItem>标签。但itemDescription="#{ds.description}"不能在<f:selectItems>标签中使用。

这里是错误吗?

+0

我认为是绿豆的问题。 可能是你需要重建你的项目。 – 2013-03-25 06:28:33

+0

_not working_是什么意思? – Apurv 2013-03-25 06:32:47

+0

我使用mave,现在我清理并安装项目,但不工作。为什么在标签中使用itemDescription =“TEST”,为什么不在中工作? – zuri 2013-03-25 06:33:13

回答

1

F:selectItems的要求,你在我们的bean定义像这样的列表:

List<SelectItem> list = new LinkedList<SelectItem>(); 
list.add(new SelectItem("this will be the return value -> itemValue", "this will be the display value -> itemLable")); 

如果你这样做,你甚至不需要项目值或itemDescription,因为它在列表中已定义。

更新(注:你不需要项目值,itemDescription):

在您的XHTML页面就应该是这样的:

<p:selectOneMenu value="#{reportRegisterManagedBean.starter}"> 
    <f:selectItems value="#{reportRegisterManagedBean.startersSelectItems}" /> 
</p:selectOneMenu> 
+0

我有startersSelectItems = new ArrayList (); startersSelectItems.add(new SelectItem(ds,ds.getName()));我尝试使用ds.getName()来显示itemDescription =“#{ds.name}”但不起作用 – zuri 2013-03-25 12:02:28

+0

您是否从f:selectItems标记中删除了itemDescription,itemLabel?我更新了我的答案,试一试。 – leostiw 2013-03-25 14:14:40

+0

不,我在中有转换器和其他属性。新LinkedList ()和新ArrayList ()之间有什么区别? – zuri 2013-03-25 16:59:14