Wie ajax render nur die Eingänge, anstatt die ganze form?
Ich habe ein Formular in JSF 2.0 mit viel text (Beschriftungen) und Checkboxen. Der text wird nicht aktualisiert nach Einreichen, aber die checkbox-Werte hat.
Beispiel:
<h:form>
<h:outputLabel value="bla bla bla bla .. X 1000" id="lab1">
<h:selectBooleanCheckbox for="lab1">
<h:outputLabel value="bla bla bla bla .. X 1000" id="lab2">
<h:selectBooleanCheckbox for="lab2">
.... many more labels and checkboxes ...
<h:commandButton>
<f:ajax render="@form" execute="@form" />
</h:commandButton>
</h:form>
Das problem ist, dass immer wenn ich eine senden, das Formular Inhalte wurden neu gerendert. Ich möchte einfach die checkbox-Werte werden neu gerendert. Dies könnte sparen Sie 90% die Größe der Anforderung.
Ist es eine gute Lösung für dieses problem?
InformationsquelleAutor Ben | 2011-10-18
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den
render
Attribut akzeptiert eine durch Leerzeichen getrennte Zeichenfolge von mehreren Komponenten-IDs. Sie geben die Komponenten-IDs der gewünschten Eingänge in derrender
- Attribut anstelle des gesamten@form
.Ihre Ansicht-markup ist ungültig (wie Sie Aussehen, verwechseln label
for
mit Eingangid
), aber auf den Punkt, es sollte so Aussehen:Beachten Sie, dass Sie akzeptiert ein EL-Ausdruck, wie gut. Wenn dies eine dynamisch generierte form und/oder die ID und die Anzahl der Checkboxen sind im Voraus bekannt, die in der Bohne, dann sollten Sie in der Lage sein, etwas zu verwenden, wie:
Sagen, Kann ich mit einem JAVASCRIPT-Ausdruck in das render-Attribut? (So, ich automatisch erstellen Sie eine javascript-var enthält die ids aller Checkboxen und Input in der form)
Nein, das können Sie nicht. Diese wird ausgewertet, vollständig serverseitig. Sie konnte am besten erstellen Sie eine benutzerdefinierte EL-Funktion für Sie, wenn Sie wollen, um zu entkoppeln die Verantwortung aus der managed bean und die Wiederverwendung in anderen Formen. Oder vielleicht erstellen Sie eine benutzerdefinierte ajax-tag, aber das ist nicht gerade trivial.
InformationsquelleAutor BalusC