2010-10-14 25 views
1

我在我的支持bean中有一個模型對象集合,我想用f:selectItems標籤在h:selectOneMenu中顯示它們。我讀過很多教程,建議使用SelectItem對象集合而不是我的模型POJO。但是,我不想這樣做,因爲它會將模型與面部表示相關聯。有什麼辦法可以做到這一點?我不斷收到一個Servlet例外 - "incompatible with javax.faces.model.SelectItem."我已經發布了下面的幾個示例代碼段:JSF/Spring如何在沒有SelectItem對象的情況下使用h:selectOneMenu

的Java:

@Component(value = "headerBean") 
@Scope(value = "session") 
class HeaderBean{ 

private Collection<ValueObject> myCollectionOfValueObjects = new ArrayList<ValueObject>(); 
// ... 
// getter, setters, whatnot... 
// ... 
} 

JSP:

<h:selectOneMenu id="selectMenu" value="#{headerBean.myValueObject}"> 
    <f:selectItems value="#{headerBean.myCollectionOfValueObjects}"/> 
</h:selectOneMenu> 

回答

1

你必須只使用了SelectItem。

使用轉換器相同,here是一篇文章

1

你需要一個SelectItem,因爲這是JSF知道什麼顯示什麼傳遞的價值的方式。

也許這將是很好,如果你可以指定類似:

<f:selectItems collection="#{bean.colelction}" itemKey="id" itemLabel="name" /> - 但你不能在JSF 1.2。但是,在JSF 2.0中使用了It is available

相關問題