JSF通过包含来自另一个页面的额外列来扩展基本数据表
我有一个包含20列的基本数据表,所有报告都使用它……有些报告添加了额外的列,有没有办法将额外列的代码放在单独的JSF页面中,并以某种方式引用它 e、 g datatable.jspJSF通过包含来自另一个页面的额外列来扩展基本数据表,jsf,Jsf,我有一个包含20列的基本数据表,所有报告都使用它……有些报告添加了额外的列,有没有办法将额外列的代码放在单独的JSF页面中,并以某种方式引用它 e、 g 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="#{tab
<%@ 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>
include.jsp
不,这是不可能的。最好的选择是h:column
组件的rendered
属性。如果计算结果为true
,则将显示相关列。例如:
<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>
但是,您可以将任何类型的布尔表达式放入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'}" />
不,这是不可能的。最好的选择是
h:column
组件的rendered
属性。如果计算结果为true
,则将显示相关列。例如:
<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>
但是,您可以将任何类型的布尔表达式放入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'}" />