2015-09-28 55 views
0

我有以下代碼:號碼:selectOneMenu用於不在我的JSF工作

<p:outputLabel value="Area" for="area" /> 
<p:selectOneMenu value="#{addActionView.area}" id="area"> 
    <f:selectItems value="#{addActionView.areas}" /> 
</p:selectOneMenu>  

<p:commandButton value="Save" action="#{addActionView.save}" /> 

AddActionView.java:

public List<Area> getAreas() { 
    List<Area> result = new LinkedList<Area>(); 
      ... fill in Values 
    return result; 
} 

private Area area; 

public Area getArea() { 
    return area; 
} 

public void setArea(Area bereich) { 
    this.area = bereich; 
} 

當我點擊命令按鈕沒有任何反應。當我刪除selectOneMenu時,頁面按預期工作。我的錯在哪裏?

+1

'沒有任何反應'不聰明。檢查服務器,檢查客戶端日誌檢查頁面中添加的消息組件等...做一些基本的jsf調試。最有可能的是:由於您似乎在selectone菜單中使用「對象」而不是字符串,因此丟失了所需的轉換器 – Kukeltje

+0

甚至沒有日誌消息... – matthias

+0

[commandLink/commandButton/ajax backing bean action/listener method not調用](http://stackoverflow.com/questions/2118656/commandlink-commandbutton-ajax-backing-bean-action-listener-method-not-invoked) – Kukeltje

回答

-2

我不確定這是否完全有必要,但我有我的選擇選項列表作爲類的實例javax.faces.model.SelectItem;,而不是我自己定義的東西。

JSF需要知道在下拉框中從您的Class Area的實例中顯示哪些屬性,因此您可以假設您必須使用內置類或指定id爲area.getId()並顯示的字符串是area.getString()等。

但是,我甚至不知道這個答案是否解決了您的問題,因爲問題中提出的問題尚不清楚。