我正在使用Primefaces和MyFaces。我想使用selectBooleanButton組件來控制其他組件在長和相當複雜的形式中的可見性。在primefaces中使用setBooleanButton的初始值
簡化示例代碼:
<p:selectBooleanButton
onLabel="Comment" offLabel="Comment"
onIcon="ui-icon-check" offIcon="ui-icon-close"
value="#{not empty myBean.comment}"
onchange="toggleDisplay(this.checked,'myForm:commentPanel');" />
<h:panelGroup id="commentPanel"
style="display:#{empty myBean.comment ? 'none' : 'block'}">
<p:inputTextarea value="{myBean.comment}"/>
</h:panelGroup>
在onchange屬性的JavaScript簡單地從零到塊,反之亦然,以隱藏或顯示面板組切換的顯示樣式。我想/需要組件保留在視圖中,我不想使用呈現的屬性完全刪除它們。
我陷入困境的原因是因爲setBooleanButton組件的value屬性中使用了EL構造。我意識到這個EL語句與set操作不兼容,並且這導致了一個異常。
我想要做的是當表單被加載時,當comment屬性有一些現有文本時,將selectBooleanButton組件的初始狀態設置爲'on',當它爲空時爲'off' 。我正在尋找一種方法來解決這個問題,這不需要我在模型中爲每個想要隱藏面板的實例創建一個屬性,因爲這會導致幾十個和幾十個屬性,因爲我的真實世界形式這些評論部分中有很多是非常大的。
我猜這是一個真正的stumper。有人有主意嗎?我在這一個上很好。 – tcprogrammer
還卡住了,有人嗎? – tcprogrammer