SelectOneMenu aktualisieren, wenn der Wert für anderes SelectOneMenu festgelegt ist (Ereignis wird nicht ausgelöst)

In meiner Anwendung versuche ich, ein SelectOneMenu einzustellen / zu aktualisieren, wenn ein anderes SelectOneMenu eingestellt ist. Wir verwenden Primefaces, also habe ich die Präsentation der Primefaces überprüft und genau das gefunden, wonach ich gesucht habe. Leider funktioniert es nicht. Das Event wird nicht abgefeuert und ich weiß nicht warum. Hoffentlich kannst du mir helfen

Link zum Beispiel des Schaukastens der Primefaces

-> Wenn die Sprache eingestellt ist, sollte sie die Liste automatisch mit den Anreden neu laden, tut es aber nicht. Ich muss F5 drücken, um neu zu laden. Irgendwelche Ideen?

Mein xhtml Code

<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>

Meine Bohne

@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();
}

Antworten auf die Frage(1)

Ihre Antwort auf die Frage