Я пытаюсь получить имя primefaces SelectOneMenu выбранного элемента из кода:Получить выбранный элемент SelectOneMenu «s из кода
Это мой 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;
}
Любые идеи?
€: Проблема в том, что выбранный элемент возвращается только в поглотителе, если я вызываю метод и АЯКС обновление:
<p:ajax update="panelMain" listener="#{userManagerBean.changeEvent}" />
Но я не получаю правильный выбранный элемент на странице load (item = null).
Почему вы это усложняете? Вероятно, вы привязали значение компонента к свойствам бэк-компонента? – partlov
Я также пробовал это, но я не получил имя выбранного элемента в качестве значения, а также мое значениеChangeListener не работает: не вызывается, если я изменяю выбранный элемент. Точнее: геттер возвращает null для ** somValue ** – ctekk
Можете ли вы показать соответствующие части вашего бэкбона? Определение класса, аннотации и getter и setter для этого свойства 'somValue'. – partlov