【问题标题】:struts2 checkboxlist to show aligned labelstruts2 checkboxlist 显示对齐的标签
【发布时间】:2013-07-17 16:20:14
【问题描述】:

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

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

我的Bill.getDisplayLabel() 打印出:“amount date billDescription”

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 个不同部分。我尝试将&lt;td&gt; 代码放入我的Bill.getDisplayLabel() 中,但struts 将其转义,以便显示实际的&lt;td&gt; 标签!

任何想法都会受到赞赏。

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

【问题讨论】:

  • 所以你真的想分割字符串?这是询问如何拆分字符串的非常冗长的问题。 :)
  • 为什么不将此值存储在单独的属性中?或者只是在 FreeMarker 模板中使用split
  • 测试&lt;Div&gt;&lt;P&gt; 标签而不是&lt;table&gt;。我认为它可能有效。

标签: java jsp struts2 jstl


【解决方案1】:

这就是我最终使用的:

<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 上有其他未通过验证的字段,这将不起作用。我必须在&lt;input type="checkbox" ...&gt; 的末尾添加额外的jstl 才能使checked="checked"

【讨论】:

    【解决方案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>
    

    【讨论】:

    • 这确实解决了我的表格数据本身的初始显示渲染问题。如果出现错误,问题就会出现,我必须重新显示保留原始值(复选框检查)的表单。我必须自己在 JSP 中设置它们。谢天谢地,我现在不用担心了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-02
    • 1970-01-01
    相关资源
    最近更新 更多