Frage

Ich habe ein Formular in JSF 2.0 mit vielen Text (Beschriftungen) und Kontrollkästchen. Der Text wird beim Senden nie aktualisiert, aber die Kontrollkästchen -Werte.

Zum 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 dann der gesamte Formularinhalt eingereicht wird, wenn ich eingereicht habe. Ich möchte nur, dass nur die Kontrollkästchen-Werte neu geführt werden. Dies könnte 90% der Anforderungsgröße sparen.

Gibt es eine gute Lösung für dieses Problem?

War es hilfreich?

Lösung

Das render Das Attribut akzeptiert eine von Speicherplatz getrennte Zeichenfolge mehrerer Komponenten -IDs. Sie können die Komponenten -IDs der gewünschten Eingänge in der angeben render Attribut anstelle des Ganzen @form.

Ihre Ansichtsmarkup ist ungültig (sehen Sie aus, als ob Sie verwirrtes Etikett sind for mit Eingabe id), aber bis zu dem Punkt sollte es so aussehen:

<h:outputLabel value="bla bla bla bla .. X 1000" for="lab1">
<h:selectBooleanCheckbox id="lab1">

<h:outputLabel value="bla bla bla bla .. X 1000" for="lab2">
<h:selectBooleanCheckbox id="lab2">

.... many more labels and checkboxes ...

<h:commandButton>
    <f:ajax execute="@form" render="lab1 lab2 lab3 lab4 ..." />
</h:commandButton>     

Beachten Sie, dass es auch einen EL -Ausdruck akzeptiert. Wenn dies ein dynamisch generiertes Formular ist und/oder die ID und Anzahl der Kontrollkästchen im Voraus in der Bohne bekannt sind, sollten Sie in der Lage sein, etwas wie zu verwenden:

    <f:ajax execute="@form" render="#{bean.allCheckboxIds}" />
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top