Обновите SelectOneMenu, если установлено значение ohter SelectOneMenu (событие не сработало)
В моем приложении я пытаюсь установить / обновить SelectOneMenu, если установлено другое SelectOneMenu. Мы используем Primefaces, поэтому я проверил витрину Primefaces и нашел именно то, что искал. К сожалению, это не работает. Событие не состоялось, и я не знаю почему. Надеюсь, вы можете помочь мне
Ссылка на пример витрины простых лиц
- & GT; Если язык установлен, он должен автоматически перезагрузить список с приветствиями, но это не так. Я должен нажать F5, чтобы перезагрузить. Есть идеи?
Мой код xhtml
<h:form id="addressBasicsForm">
<p:growl id="growl" sticky="true" showDetail="true"/>
<p:tabView id="tabView">
<p:tab id="stammdaten" title="#{msg.adr_basics_tabtitle}">
<table style="width:100%;">
<tr>
<td style="width: 50%;">
<p:panel toggleable="false">
<table style="margin-top:3px; width:100%;">
<tr style="height:26px;">
<td>
<p:selectOneMenu id="somLang" value="#AddressBasics_m.languageId}" style="margin-left:2px; width:90%;">
<f:selectItems value="#{AddressBasics_m.languageItems}"/>
<p:ajax update="somAnrede" listener="#{AdressBasics_m.handleLanguageChange}"/>
</p:selectOneMenu>
</td>
</tr>
<tr style="height:26px;">
<td>
<p:selectOneMenu id="somAnrede" value="#AddressBasics_m.salutationId}" style="margin-left:2px; width:90%;">
<f:selectItems value="#{AddressBasics_m.salutationItems}" />
</p:selectOneMenu>
</td>
Мой боб
@Named("AddressBasics_m")
@ConversationScoped
public class AddressBasicsView implements Serializable{
private static final long serialVersionUID = -4034697810438325785L;
public List<SelectItem> getSalutationItems(){
if(firstrun)
languageId = 21L;
firstrun = false;
if(salutationItems == null || lastLanguageId != languageId){
salutationItems = addressService.getAllSalutationsByLangId(languageId);
setLastLanguageId(languageId);
}
return salutationItems;
}
public void handleLanguageChange(){
this.salutationItems = getSalutationItems();
}