私はバッキングビーンを持っていますViewScoped
。SelectBooleanCheckbox
フォームに ajax 対応の esがいくつかあります。例:
<p:selectBooleanCheckbox value="#{formBean.value2}">
<p:ajax update=":theform"/>
</p:selectBooleanCheckbox>
通常、いくつかの非表示の入力フィールドは、ビューステート ID を通過するために html にある必要があります。問題は、それらが最初のページ要求で開始されないことです。チェックボックスの 1 つをクリックすると、フォーム (したがってチェックボックス) が更新されます。この時点から、ビューステート ID がこれらのチェックボックスとともに送信されるため、ビューステートを保持できます。
これの最大の問題は、最初の ajax 呼び出しで一連の新しい ViewScoped Bean が開始されるため、最初のアクションに関するデータが失われることです。それ以降、すべてが適切に機能しているようです。
何が問題なのかについて、誰かが私に指示を与えることができますか?
正確なコード:
<p:panel header="Schedule" toggleable="true">
<form>
<p:outputPanel id="schedule">
<ui:repeat var="scheduleDay" value="#{jobBean.jobScheduleDays}">
<div>
<p:selectBooleanCheckbox value="#{scheduleDay.selected}" style="margin:4px">
<p:ajax update=":schedule" />
</p:selectBooleanCheckbox>
<h:outputText value="#{scheduleDay.readableDay}" style="text-transform:capitalize"/>
</div>
</ui:repeat>
</p:outputPanel>
</form>
</p:panel>