データテーブルの選択に奇妙な問題があります(おそらく私は何か間違ったことをしています)。アイデアはシンプルです-選択とレコードを編集するためのダイアログを備えたデータテーブル。問題は、<h:inputText>
タグ(または<p:inputText>
)を使用すると、バッキングBean(indicatorBean.indicator.code
)のオブジェクトにデータが含まれていても、空白のように見えることです。興味深いことに<h:outputText>
、入力の代わりに入力すると、データが表示されます。
これが私の体の中身です
<!-- language: xml -->
<h:body>
<h:form id="form">
<p:growl id="messages" showDetail="true"/>
<p:dataTable id="indicatorsTable" var="ind"
value="#{indicatorBean.indicators}"
selectionMode="single"
selection="#{indicatorBean.indicator}"
rowKey="#{ind.id}">
<p:column headerText="Name" style="width:125px">
#{ind.name}
</p:column>
<p:column headerText="Code" style="width:125px">
#{ind.code}
</p:column>
<f:facet name="footer">
<p:commandButton id="viewButton" value="View"
icon="ui-icon-search" update=":form:display"
oncomplete="indDialog.show()"/>
</f:facet>
</p:dataTable>
<p:dialog id="dialog" header="Indicator Detail"
widgetVar="indDialog" resizable="false"
width="400" showEffect="fade" hideEffect="fade">
<h:panelGrid id="display" columns="2" cellpadding="4">
<h:outputText value="Code:"/>
<!-- PROBLEM IS HERE -->
<h:inputText value="#{indicatorBean.indicator.code}"/>
<h:outputText value="Name:"/>
<h:outputText value="#{indicatorBean.indicator.name}"/>
</h:panelGrid>
<p:commandButton value="Save" onclick="indDialog.hide()"/>
<p:commandButton value="Cancel" onclick="indDialog.hide()"/>
</p:dialog>
</h:form>
</h:body>
バッキングBeanは、アクセサーに他なりません。
私が見つけたもう1つのことは、el式を<h:inputtext>
静的テキスト(のような<h:inputText value="static text"/>
)に置き換えると、それが表示されることです。ここにいくつかの写真があります:
inputtextとのダイアログ
出力テキストとのダイアログ
静的テキストとのダイアログ
Primefaces 3.4