如何使用tagx和jstl将标题标签(工具提示)添加到HTML表格列?

时间:2014-02-13 15:34:01

标签: java html jstl jspx tagx

我有一个tagx来创建一个头<th>...</th>的表,基于Spring Roo的table.tagx。

将文字放入头部列很容易,但是当涉及到标题时,我就被卡住了。

这是我目前填补表头的方法:

<spring:eval var="colCounter" expression="0" />
<table id="_table_${id}_id" class="sortable" >
  <thead>

    <tr>
      <c:forTokens items="${columnLabels}" delims="," var="columnHeading">
        <th>
          <c:out value="${columnHeading}" />
          <spring:eval var="colCounter" expression="colCounter  + 1" />
        </th>
      </c:forTokens>

    [... some more unimportant code here ...]

    </tr>

  </thead>
  <tbody>
    ...
  </tbody>
</table>

columnLabels是包含标签的逗号分隔字符串。我生成了另一个名为columnTitles的字符串,它的构建方式相同。

所以我现在要做的是将每列的标题添加到<th>标记中,如

<th title="${columnTitle}" >

我可以循环遍历一个数组,colCounter作为索引,就像这个

一样
<th title="${columnTitles[colCounter]}" >

但这意味着需要更多努力,因为我需要以完全不同的方式创建数组 - 而且,我对tagx / jstl(还)还不是很熟悉。

我仍然希望,有人有解决方案。我会很高兴的!

此致 Stacky

1 个答案:

答案 0 :(得分:1)

忘掉两个单独的逗号分隔字符串。

使用List<Heading>,其中Heading是包含title属性和tooltip属性的bean。

您的JSP代码现在很简单,不需要将逗号分隔的String解析为令牌列表:

<c:forEach items="${headings}" var="heading">
    <th title="<c:out value='${heading.tooltip}'/>">
      <c:out value="${heading.title}" />
    </th>
</c:forEach>

Java是一种OO语言。使用对象。