我有List<Bill> bills
。 Bill
是一个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模板垂直显示复选框。
答案 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"
<input type="checkbox" ...>