2013-03-25 75 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