2010-02-09 5 views
1

J'ai une base de données avec 20 colonnes qui est utilisée par tous les rapports ... Certains rapports ajoutent des colonnes supplémentaires, y a-t-il un moyen de mettre le code colonne dans une page JSF séparée et référence ce comment?JSF Étendre une base de données en incluant une colonne supplémentaire d'une autre page

par exemple.

datatable.jsp

<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%> 
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%> 

<h:dataTable value="#{table}" var="item" styleClass="report-table"> 
    <f:subview id="tb1"> 
     <jsp:include page="/jsp/include.jsp" /> 
    </f:subview> 
</h:dataTable> 


include.jsp 
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%> 
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%> 


<t:column > 
     <f:facet name="header"> 
       <h:outputText value="User" /> 
     </f:facet> 
     <h:outputText value="MyUser"></h:outputText> 
</t:column> 

Répondre

1

Non, ce n'est pas possible. Votre meilleur pari est l'attribut rendered du composant h:column. Si elle est évaluée à true, la colonne en question sera affichée. .: par exemple

<h:dataTable value="#{bean.list}" var="item"> 
    <h:column> 
     This is always displayed. 
    </h:column> 
    <h:column rendered="#{bean.additionalColumnRequired}"> 
     This is only displayed when additionalColumnRequired == true. 
    </h:column> 
    <h:column rendered="#{!bean.additionalColumnRequired}"> 
     This is only displayed when additionalColumnRequired == false. 
    </h:column> 
</h:dataTable> 

.. où le regard getter booléen comme ceci:

public boolean isAdditionalColumnRequired() { 
    return ... // true or false. 
} 

Vous pouvez cependant mettre tout type d'expression booléenne dans l'attribut rendered.

<h:someComponent rendered="#{bean.booleanValue}" /> 
<h:someComponent rendered="#{bean.intValue > 10}" /> 
<h:someComponent rendered="#{bean.objectValue == null}" /> 
<h:someComponent rendered="#{bean.stringValue != 'someValue'}" /> 
<h:someComponent rendered="#{!empty bean.collectionValue}" /> 
<h:someComponent rendered="#{!bean.booleanValue && bean.intValue != 0}" /> 
<h:someComponent rendered="#{bean.stringValue == 'oneValue' || bean.stringValue == 'anotherValue'}" /> 
Questions connexes