vanilla JSF 2.0是否支持跨不同行的不同列数的数据表?
我的Java bean中有一个二维数组,在某些行中只有一列包含数据。对于那些我希望它们显示为合并的行。即列之间没有边框,数据能够使用相邻列的宽度进行显示。
没有额外的JSF框架,这样做是否合理?
答案 0 :(得分:2)
你可以使用vanilla HTML表而不是JSF表来实现。只需为矩阵实现双重迭代。假设您能够在您的环境中使用EL 2.2表达式:
@ManagedBean
@RequestScoped
public class ArrayBean {
private Integer[][] array = { { 1, 2, 3 }, { 1 } };
public Integer[][] getArray() {
return array;
}
}
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:fn="http://java.sun.com/jsp/jstl/functions">
<h:head />
<h:body>
<table border="1">
<ui:repeat var="row" value="#{arrayBean.array}">
<tr>
<ui:repeat var="column" value="#{row}">
<td colspan="#{fn:length(arrayBean.array) / fn:length(row)}"
align="center">#{column}</td>
</ui:repeat>
</tr>
</ui:repeat>
</table>
</h:body>
</html>
此解决方案未考虑您可能decimal colspans,因此您应计算列号的最小公分母。但是,这超出了你的问题的范围。