我的複合組件(cc)創建一個inputText字段。重要的部分是,它根據模型屬性「可見」呈現。該模型通過parm「name」賦予組件。JSF 2複合組件渲染問題
<cc:interface>
<cc:attribute name="name" required="true"/>
</cc:interface>
<cc:implementation componentType="ch.sbi.pt.components.PMSInputText">
<h:inputText value="#{cc.attrs.name.value}" rendered="#{cc.attrs.name.visible}"/>
</cc:implementation>
在視圖中我有一個2格/行的panelGrid:第一行有一個標籤和我的cc,第二個並不重要。該標籤使用與我的cc相同的模型屬性進行渲染。
<h:panelGrid columns="2">
<h:outputText value="Name" rendered="#{person.name.visible}"/>
<sbic:pmsInputText name="#{person.name}"/>
<h:outputText value="Next Label"/>
<sbic:pmsInputText name="#{something.name}"/>
</h:panelGrid>
結果(和問題)是下面的,如果「可見」 - 屬性返回「假」: 無組件都呈現(!完美的),但CC生成的HTML留下一個空單元格(如<td></td>
),這導致難看layouted HTML表(偏移一個單元):
<table>
<tbody>
<tr>
<td></td>
<td>Next Label</td>
</tr>
....
據我瞭解這是與生命週期(JSTL與JSF)做的事:我的CC呈現前<h:outputText../>
但我如何擺脫空單元格(例如<td></td>
)?我在這裏錯過了什麼嗎?
謝謝你的幫助,專家! Marc
你對「JSTL vs JSF」有什麼意思?這裏沒有任何JSTL的東西。你是不是混淆/誤解JSTL是什麼?閱讀:http://stackoverflow.com/tags/jstl/info – BalusC
是的,我是。我的錯。謝謝。 – MarcG