我正在尝试从代码中获取 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>
用户管理器Bean.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;
}
有任何想法吗?
€:问题是如果我调用方法和ajax更新,则仅在getter中返回所选项目:
<p:ajax update="panelMain" listener="#{userManagerBean.changeEvent}" />
但是我在页面加载时没有得到正确的选定项目( item = null )。