-2

这是我的jsf:

 <h:dataTable class="pretty" value="#{ftController.ftDataModel}" var="item">
                    <h:column>
                        <f:facet name="header">
                            <h:outputText value="Amount"/>
                        </f:facet>
                    </h:column>
                    <h:column >
                        <f:facet class="right" name="header">
                            <h:outputText value="Date"/>
                        </f:facet>
                    </h:column>
                    <h:column>      
                        <h:outputLink   value="index.jsf"><h:outputText value="#{item.ftType}"/></h:outputLink><br />
                          <h:outputText class="red" id="amount"   value="#{item.amount}"></h:outputText> <h:outputText value="&#160;" /><h:outputText  style="font-size:12px" class="gray" value="TL" />
                    </h:column>
                    <h:column class="right" >
                        <h:outputText id="date"    value="#{item.date}"></h:outputText> 
                    </h:column>
                </h:dataTable>

但是,html 输出是这样的:

<table class="pretty">
<thead>
<tr>
<th scope="col">Amount</th>
<th scope="col">Date</th>
<th scope="col"></th>
<th scope="col"></th>
</tr>
</thead>
<tbody>
<tr>
<td></td>
<td></td>
<td><a href="index.jsf" class="ui-link">Person</a><br><span id="j_idt8:j_idt21:0:amount" class="red">34500.6</span>&nbsp;<span class="gray" style="font-size:12px">TL</span></td>
<td><span id="j_idt8:j_idt21:0:date">10/14/2012</span></td>
</tr>
<tr>
<td></td>
<td></td>
<td><a href="index.jsf" class="ui-link">Person</a><br><span id="j_idt8:j_idt21:1:amount" class="red">3444.78</span>&nbsp;<span class="gray" style="font-size:12px">TL</span></td>
<td><span id="j_idt8:j_idt21:1:date">10/15/2012</span></td>
</tr>
</tbody>
</table>

<th>它在金额和日期下为前增加了额外的费用。它还添加了<td>s为什么?这里有什么问题?我该如何解决?为什么要加?

4

2 回答 2

1

<f:facet>只需与行数据<h:column> 一起嵌套。您在代码中告诉 JSF 的是创建 4 列,其中前两列将包含空行数据和定义的标题文本,而后两列将反转所有内容。像这样修复它:

            <h:dataTable class="pretty" value="#{ftController.ftDataModel}" var="item">
                <h:column>
                    <f:facet name="header">
                        <h:outputText value="Amount"/>
                    </f:facet>
                    <h:outputLink   value="index.jsf"><h:outputText value="#{item.ftType}"/></h:outputLink><br />
                      <h:outputText class="red" id="amount"   value="#{item.amount}"></h:outputText> <h:outputText value="&#160;" /><h:outputText  style="font-size:12px" class="gray" value="TL" />
                </h:column>
                <h:column >
                    <f:facet class="right" name="header">
                        <h:outputText value="Date"/>
                    </f:facet>
                    <h:outputText id="date"    value="#{item.date}"></h:outputText> 
                </h:column>
            </h:dataTable>
于 2013-04-18T15:22:02.123 回答
0

这是因为您 <h:column> 的数据表中有 4 个。并且 3rd 和 4th 没有name属性,所以它是空白的。

于 2013-04-18T15:15:13.963 回答