struts2 checkboxlist显示对齐的标签

时间:2013-07-18 15:45:36

标签: java jsp struts2 jstl

我有List<Bill> billsBill是一个id, amount, date, billDescription的bean。 我想显示Bill个对象的复选框列表。所以我用:

<s:checkboxlist list="bills" name="selectedBills" 
    listKey="id" listValue="displayLabel"/>

我的Bill.getDisplayLabel()打印出来:“金额日期帐单说明”

40.00 5/1/2011 Electric Bill
1005.25 6/12/2012 Gas Bill

问题是它没有对齐。我想自定义我的displayLabel,以便金额对齐,日期对齐,billDescription对齐。它应显示为:

[ ]   40.00    5/1/2011    Electric Bill
[ ] 1005.26    6/12/2012   Gas Bill

每个前面都有一个复选框。基本上我想生成这段代码:

<table>
   <tr>
      <td><input type="checkbox" name="selectedBills" value="9" id="selectedBills-1"/></td>
      <td style="text-align: right">40.00</td>
      <td>5/1/2011</td>
      <td>Electric Bill</td>
   </tr>
   <tr>
      <td><input type="checkbox" name="selectedBills" value="9" id="selectedBills-2"/></td>
      <td style="text-align: right">1005.26</td>
      <td>6/12/2012</td>
      <td>Gas Bill</td>
   </tr>
</table>

我该怎么做?第一列应该有复选框,但最后3列是标签的3个不同部分。我尝试在<td>内加入Bill.getDisplayLabel()代码,但struts会将其转义,以便显示实际的<td>代码!

任何想法将不胜感激。

更新:我已经知道如何通过自定义freemarker模板垂直显示复选框。

2 个答案:

答案 0 :(得分:2)

如何使用struts iterator?我还没有正确测试这段代码。但我希望它可以给你一些想法:

<table>
  <s:iterator value="bills" var="bill">
    <tr>
    <td><input type="checkbox" name="selectedBills" value="${bill.id}" id="selectedBills-2"/></td>
    <td style="text-align: right">${bill.amount}</td>
    <td>${bill.date}</td>
    <td>${bill.description}/td>
    </tr>
  </s:iterator>
</table>

答案 1 :(得分:0)

这是我最终使用的结果:

<s:iterator value="bills" var="bill" status="rowstatus">
<tr>
    <td>
        <input type="checkbox" name="selectedBills" value="${bill.id}" 
            id="selectedBills-${rowstatus.index}" />        
    </td>
    <td style="text-align: right">${bill.amount}</td>
    <td >${bill.serviceDate}</td>
    <td>${bill.label}</td>
</tr>
</s:iterator>

这是有效的。这样做的问题是,如果我在JSP上有其他字段验证失败,这将无法正常工作。我必须在checked="checked"

的末尾添加额外的jstl才能生成<input type="checkbox" ...>