Was JSF-Ajax render eigentlich?
In der JSF-code, ich sehe dies:
...
<h:selectOneMenu id="clientCode" value="#{theBean.clientCodeSelection}">
<f:selectItem itemValue="" itemLabel="Please select one" />
<f:selectItems value="#{theBean.clientList}" />
<f:ajax render="go"/>
</h:selectOneMenu>
...
<h:commandButton id="go" value="Go" immediate="true" >
<f:ajax render="clientTable" event="click" listener="#{theBean.doSearch}"></f:ajax>
</h:commandButton>
Darf ich wissen, was bedeutet <f:ajax render="go"/>
eigentlich tun? Meine anfängliche Vermutung zum Rendern der Go-Taste, aber ich glaube nicht, dass es so streng nach vorne, wie ich finde. Bitte korrigieren Sie mich, wenn ich falsch bin.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den
<f:ajax render="go">
wird, aktualisieren Sie die generierten HTML-Darstellung der JSF-Komponente mit relativen client-IDgo
wenn die ajax Anfrage erfolgreich abgeschlossen wurde, im webbrowser. Im Grunde, die JSF-Komponente mit relativen client-IDgo
wird sich in den JSF-komponentenbaum auf dem webserver und dann hingerichtet, woraufhin seine generierte HTML-Ausgabe wird am Ende in der ajax-Antwort. Sobald die ajax-response zurück in den Web-Browser, genau diese HTML-Ausgabe wird aktualisiert, in der HTML-DOM-Baum in den webbrowser. Dies ist sehr nützlich, wenn die JSF-Komponente generieren können unterschiedliche HTML-Inhalte auf einer pro-Anfrage-basis auf der Grundlage der vorgelegten form Daten.Beachten Sie, dass dies nur funktioniert, wenn die JSF-Komponente ist immer dargestellt wird (d.h. es muss nicht ein
rendered="false"
auf sich selbst oder seinen Eltern).In Ihrem Beispiel, es gibt im Grunde nichts in der generierten HTML-Darstellung, die sich ändern könnte auf einer pro-Anfrage-basis. So, dass
<f:ajax render="go">
ist in diesem speziellen Fall scheinbar völlig nutzlos. Wenn Sie zum Beispiel müsste eine zweite dropdown-deren Liste der verfügbaren Elemente sind abhängig vom ausgewählten Element des aktuellen dropdown, dann würde es Sinn machen, verweisen Sie im<f:ajax render>
, so dass es aktualisiert mit neuen Daten, wenn Sie ändern Sie den aktuellen dropdown.Hier macht es nichts, aber in den Fall, Sie möchten die Anzeige Befehlsschaltfläche auf einige rendering-Zustand, dann wird es verwendet werden...