獲取selectOneMenu用於的選擇的項目,我想從代碼獲得primefaces selectOneMenu用於所選項目的名稱:從代碼
這是我selectOneMenu用於:
FacesContext.getCurrentInstance().getViewRoot().findComponent("formMain:somSelect");
組件被發現。 我已經嘗試將它轉換爲SelectOneMenu,但我不會得到像「getSelectedValue()」這樣的方法,它寫在「客戶端API」的用戶手冊中。 我也試過了:
FacesContext.getCurrentInstance().getViewRoot().findComponent("formMain:somSelect").getAttributes().get("label");
但是這會返回NPE。
<p:selectOneMenu id="somSelect" value="#{userManagerBean.somValue}" valueChangeListener="#{userManagerBean.somListener}" styleClass="selecters">
<f:selectItems value="#{userSelectBean.userList}" />
</p:selectOneMenu>
UserManagerBean.java
@ManagedBean
@RequestScoped
public class UserManagerBean {
private String somValue;
private String selectedUser;
private List<User> userData;
private List<User> users;
public UserManagerBean() {
}
public String getSomValue(){
return somValue;
}
public void setSomValue(String somValue){
this.somValue = somValue;
}
// Getter for Table Content
public List<User> getUserData() {
return userData;
}
任何想法?
€:問題是,所選擇的項目僅在getter返回,如果我調用一個方法和AJAX更新:
<p:ajax update="panelMain" listener="#{userManagerBean.changeEvent}" />
但我沒有得到頁面上的一個正確選擇的項目加載(item = null)。
你爲什麼複雜這個?您可能將組件的值綁定到支持bean屬性? – partlov 2013-03-12 10:10:51
我也試過,但我沒有得到選定的項目名稱作爲值,也是我的valueChangeListener不起作用:如果我改變選定的項目不會被調用。更確切地說:getter返回null爲somValue ** – ctekk 2013-03-12 10:20:41
你可以顯示你的支持bean的相關部分嗎?類定義,註釋以及此屬性'somValue'的getter和setter。 – partlov 2013-03-12 10:25:47