入力コンポーネントをデータ テーブルの外に配置すると、バッキング Bean が入力で更新され、検索が正常に機能し、結果がデータ テーブルに正しく表示されます。
<h:form>
<!-- ------- Calendar input component outside dataTable ------- -->
<p:calendar id="selectHireDate" value="#{backingBean.hireDateToSearch}" />
<p:dataTable id="employeeDataTable"
value="#{backingBean.employeeDataModel}" var="employee">
<p:columnGroup type="header">
<p:row>
<p:column>
<f:facet name="header">
Lorem Ipsum
</f:facet>
</p:column>
</p:row>
</p:columnGroup>
<p:column>
<h:outputText value="#{employee.hireDate}" />
</p:column>
</p:dataTable>
<p:commandButton value="Submit"
actionListener="#{backingBean.searchEmployees}"
update="employeeDataTable" />
</h:form>
しかし、その入力コンポーネントをデータ テーブルのヘッダーに配置すると、突然バッキング Bean が更新されなくなります。(backingBean.setHireDateToSearch にブレークポイントを配置しましたが、これは上記のコードではトリップしますが、以下のコードではトリップしません。)
<h:form>
<p:dataTable id="employeeDataTable"
value="#{backingBean.employeeDataModel}" var="employee">
<p:columnGroup type="header">
<p:row>
<p:column>
<f:facet name="header">
<!-- ------- Calendar input component inside dataTable ------- -->
<p:calendar id="selectHireDate" value="#{backingBean.hireDateToSearch}" />
</f:facet>
</p:column>
</p:row>
</p:columnGroup>
<p:column>
<h:outputText value="#{employee.hireDate}" />
</p:column>
</p:dataTable>
<p:commandButton value="Submit"
actionListener="#{backingBean.searchEmployees}"
update="employeeDataTable" />
</h:form>
どうしてこれなの?後者のセットアップを機能させる方法はありますか?