h: commandButton / h: commandLink funktioniert nicht beim ersten Klick, sondern nur beim zweiten Klick
Wir haben ein Ajax-Navigationsmenü, das ein dynamisches Include aktualisiert. Die Include-Dateien haben jeweils eigene Formulare.
<h:form>
<h:commandButton value="Add" action="#{navigator.setUrl('AddUser')}">
<f:ajax render=":propertiesArea" />
</h:commandButton>
</h:form>
<h:panelGroup id="propertiesArea" layout="block">
<ui:include src="#{navigator.selectedLevel.url}" />
</h:panelGroup>
Es funktioniert ordnungsgemäß, aber alle Befehlsschaltflächen in der Include-Datei funktionieren nicht beim ersten Klicken. Es funktioniert nur beim zweiten Klicken und Her.
Ich habe diese Frage gefundenDie Methode commandButton / commandLink / ajax action / listener wurde nicht aufgerufen oder der Eingabewert wurde nicht aktualisiert und mein Problem ist in Punkt 9 beschrieben. Ich verstehe, dass ich die ID des explizit einschließen muss<h:form>
im Include im<f:ajax render>
um es zu lösen.
<f:ajax render=":propertiesArea :propertiesArea:someFormId" />
In meinem Fall ist die Formular-ID jedoch nicht im Voraus bekannt. Auch dieses Formular wird im Zusammenhang zunächst nicht zur Verfügung stehen.
Gibt es eine Lösung für das obige Szenario?