我試圖填充<h:selectOneMenu>
的列表。但是,我試圖檢索的列表是另一個基類中變量的類的一部分。JSF從子類中選擇項目
這是我的,我不知道這是甚至可能或如何做到這一點。
我有一個Citation
類有以下:
public class Citation {
private int id;
private String title;
private Status status;
// getters and setters
}
然後,我有一個Status
類有以下:
public class Status {
private int id;
private String name;
public List<Status> getAll() {
// goes to the database and gets a list of status objects
System.out.println("I was called!");
}
// getters and setters
}
然後我XHTML頁面上,我有以下幾點:
<h:selectOneMenu id="citation_status" value="#{citation.status}">
<f:selectItems value="#{citation.status.all}" var="s"
itemLabel="#{s.name}" itemValue="#{s.id}" />
</h:selectOneMenu>
但是,這似乎並沒有調用方法在Status
類中。當頁面加載完成時,選擇框爲空,並且控制檯沒有從getAll()
方法輸出I was called!
。
我對JSF有點新,我試過盡我所能尋找最好的,但我不確定在搜索時使用的術語,因爲它在技術上不稱爲「子類」,但這是我可以提出的最好的名字,所以不用說,我沒有找到任何東西。
其他信息
如果有幫助:
- 我用Glassfish的作爲我的應用程序服務器
- 我使用Hibernate我ORM
- 我使用JSF 2.0
現在我想到了,這是有道理的,因爲'status'尚未初始化。對於''value屬性,我可以使用'status.all'而不是'citation.status.all'嗎? –
Jared
2010-09-14 18:12:42
如果在範圍的某個地方有'#{status}',那肯定是。你還必須修復潛在的轉換問題:) – BalusC 2010-09-14 18:14:40
至少可以獲取列表中的項目。至於轉換問題,有沒有辦法將值設置爲實際的對象?我嘗試使用'',但得到錯誤'錯誤設置值狀態爲空轉換器'我假設我需要查看使用轉換器來處理? –
Jared
2010-09-14 18:18:51