0
我正在開發一個JSF項目,並且有如下重複的代碼:如何爲Primefaces/JSF創建減少重複代碼?
正如您所看到的,兩個單元格編輯器幾乎相同,只是值不同。但我仍然無法找到避免重複的方法。
<p:column headerText="DF" >
<p:cellEditor>
<f:facet name="output">
<h:outputText value="#{payLeg.df}">
<f:convertNumber pattern="###,##0.00" />
</h:outputText>
</f:facet>
<f:facet name="input">
<p:inputNumber value="#{payLeg.df}" />
</f:facet>
</p:cellEditor>
</p:column>
<p:column headerText="Forward Forward Rate" >
<p:cellEditor>
<f:facet name="output">
<h:outputText value="#{payLeg.fwdfwd}">
<f:convertNumber pattern="###,##0.00" />
</h:outputText>
</f:facet>
<f:facet name="input">
<p:inputNumber value="#{payLeg.fwdfwd}" />
</f:facet>
</p:cellEditor>
</p:column>
我試圖創建一個列的複合像
<html lang="en"
xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:p="http://primefaces.org/ui"
xmlns:composite="http://java.sun.com/jsf/composite">
<h:body>
<composite:interface>
<composite:attribute name="headerText"/>
<composite:attribute name="value"/>
</composite:interface>
<composite:implementation>
<p:column headerText="#{cc.attrs.headerText}">
<p:cellEditor>
<f:facet name="output">
<h:outputText value="#{cc.attrs.value}">
<f:convertNumber pattern="###,##0.00" />
</h:outputText>
</f:facet>
<f:facet name="input">
<p:inputNumber value="#{cc.attrs.value}" />
</f:facet>
</p:cellEditor>
</p:column>
</composite:implementation>
</h:body>
</html>
而且使用它像
<components:editableNumberColumn headerText="Year Fraction" value="#{payLeg.yearFrac}" />
</p:dataTable>
但我想,我創造了它作爲一個組件。所以dataTable不會將其識別爲列。所以專欄沒有出現。
那麼有沒有類似的方法可以實現這個目標?
非常感謝! – Ming