显示h:不同行中的列

时间:2011-06-19 13:39:59

标签: jsf jsf-2

我使用h:datatable显示数据库表中的值,一个tupple显示在jsf页面的一行中,但我想在jsf页面的单独行中显示每个字段。我怎样才能做到这一点?

提前致谢。

我在jsf页面中有以下代码。

<h:dataTable value="#{tableBean.pc}" var="p">

<h:column>
    <h:graphicImage value="/resources/images/#{p.pimagename}" />
</h:column>

<h:column>
    <h:outputText value="#{p.pname}" />
</h:column>

<h:column>
    <h:outputText value="#{p.pprice}" />
</h:column>

<h:column>
    <h:outputText value="#{p.pqtyavail}" />
</h:column>

</h:dataTable>

1 个答案:

答案 0 :(得分:1)

更改数据模型,以便将所有元组字段作为一维List的单个条目:

List<List<String>> tuples = getItSomehow();
List<String> fields = new ArrayList<String>();

for (List<String> tuple : tuples) {
    fields.addAll(tuple);
}

并改为使用它。

<h:dataTable value="#{bean.fields}" var="field">
    <h:column>#{field}</h:column>
</h:dataTable>

或者,引入HTML <br/>元素,将每个元组字段放在单个列的单独行中。

<h:dataTable value="#{bean.tuples}" var="tuple">
    <h:column>#{tuple[0]}<br/>#{tuple[1]}<br/>#{tuple[2]}</h:column>
</h:dataTable>