2010-02-08 41 views
4

這可能是一個非常新手的問題,但我沒有找到自己滿意的如何在不使用tags/includes/JSPFragments的情況下在JSP中創建Macro/Snippet/HTML片段/命名部分?

我想在JSP做somethign這樣的事(開箱即用的最好):

例如在一個名爲products.jsp一個虛構的實現文件,解釋什麼,我想

<x:named-segment name="product"> 
    Product: <strong>${product.name}</strong> <br/> 
    price: ${product.price} 
</x:named-segment> 

,並稍後在同一JSP這種使用在不同的位置,它被定義

<table> 
    <c:forEach var="product" items="${products}"> 
     <tr> 
     <td><x:use-segment name="product"/></td> 
     </tr> 
    </c:forEach> 
</table> 

我看着JSP標籤JSP Fragements,但那裏的片段片段只是從調用者JSP傳遞到JSP標籤,並且我希望它位於相同的位置

是唯一的解決辦法是爲特定的小片段(或包括?)製作JSP標記

我是否缺少一些非常基本的東西?

+0

「但是那裏的片段片段只是從調用者JSP傳遞到JSP標籤,我希望它在相同的位置「 - 我沒有得到那個.. – Bozho 2010-02-08 12:06:16

+1

他想在同一個JSP頁面中定義模板。作爲關於'xsl:template'的真實世界的例子,可以放在與使用它相同的XSL文件中。也許瓷磚或Sitemesh可以做。我不知道,從來沒有用過它們。 – BalusC 2010-02-08 12:27:46

+0

@Bozho - 片段的想法是,jsp標籤可以定義佈局,片段是可以插入標籤的JSP的「回調」或「用戶繪製」片段(順便說一句,wituot scriptlets)這很好,但不是我想要的... @BalusC - 是和Yep – 2010-02-08 14:08:57

回答

1

如果你想在很多地方的一小段文字是靜態的,我會推薦一個JSP include。 但是,如果文本來自數據庫/平面文件/ XML,我會推薦使用自定義標籤。 從您提供的示例看來,您似乎在嘗試列出產品及其價格。這可以通過自定義標籤輕鬆完成。

在您的標記類中,讀取數據,創建一個將爲數據創建HTML標記並返回爲字符串的方法,打印字符串。 現在在您的JSP中,在需要文本的地方調用自定義標籤。 當然,您需要參數化標籤以確定在什麼地方獲取/顯示哪些內容。

HTH

V

相關問題