2014-02-13 43 views
0

我有一個tagx來創建一個表頭<th>...</th>,基於Spring Roo的table.tagx。如何使用tagx和jstl將標題標籤(工具提示)添加到HTML表格列中?

爲了讓文本進入head colums很容易,但是當涉及到標題時,我被卡住了。

這是我目前的方式來填補表頭:

<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是包含標籤逗號separed字符串。我生成另一個字符串columnTitles,它的構建方式與此相同。

所以我想現在要做的是什麼,是添加每個列的標題爲<th>標籤像

<th title="${columnTitle}" > 

我或許可以通過與colCounter數組作爲這樣

指數環
<th title="${columnTitles[colCounter]}" > 

但是這意味着更多的努力,因爲我需要以完全不同的方式創建數組 - 另外,我對tagx/jstl(還沒有)非常熟悉。

我還是希望有人有解決辦法。我會很高興!

問候, Stacky

回答

1

忘掉具有兩個單獨的逗號分隔的字符串。

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

你的JSP代碼就很明瞭了,並不需要解析一個逗號分隔字符串轉換爲標記列表:

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

Java是一種面向對象的語言。使用對象。

+0

但是你不能在標題標籤中加入「c:out」,你能嗎?它告訴我,屬性「標題」不能包含字符「<」...... 雖然我還沒有製作「標題」bean,但它甚至不適用於我目前的「columnHeadings」。 – Stacky

+0

是的,你可以。您不能將JSP標籤放入另一個JSP標籤中。但是,所有不是JSP標籤或scriptlet表達式的東西都被JSP引擎視爲文本。 「它」,我猜,是你的IDE。但是你的IDE是愚蠢的。部署你的應用並測試它。如果你不喜歡它,你也可以使用'' –

+0

好吧,那就是我所做的。我部署了它並加載了相應的站點。但是我得到了一個CannotRenderException異常,特別是一個JasperException異常,它說在相應的tagx中,「title」將與元素類型「null」連接,並且可能不包含字符「<」。 我不能給你原來的錯誤信息,因爲它是德語。 但無論如何,我可以簡單地使用:title =「$ {heading.tooltip}」,不是嗎? 順便說一句,我不會認爲Spring Tool Suite是愚蠢的。 – Stacky

相關問題