4

これは非常に初心者の質問かもしれませんが、満足のいくものは見つかりませんでした

私はJSPでこのような何かをしたいです(できれば箱から出して):

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タグJSPFragementsを調べましたが、フラグメントスニペットが呼び出し元のJSPからJSPタグに渡されるだけなので、同じ場所に配置する必要があります。

唯一の解決策は、その特定の小さなスニペットのJSPタグを作成することです(またはインクルードしますか?)

私は非常に基本的なものが欠けていますか?

4

2 に答える 2

1

多くの場所で必要な小さなテキストが静的である場合は、JSPインクルードをお勧めします。ただし、テキストがデータベース/フラットファイル/ XMLからのものである場合は、カスタムタグを使用することをお勧めします。あなたが提供した例から、あなたが製品とその価格をリストしようとしているように見えます。これは、カスタムタグで簡単に実行できます。

タグクラスで、データを読み取り、データのHTMLタグを作成して文字列として返すメソッドを作成し、文字列を出力します。これで、JSPで、テキストが必要な場所でカスタムタグを呼び出します。もちろん、タグをパラメータ化して、何をどの場所でフェッチ/表示するかを決定する必要があります。

HTH

V

于 2010-03-18T11:54:03.420 に答える
0

@EranMedanにあなたの苦痛を感じますが、これがJSPの機能ではないとはまだ信じられません。何年もそれを望んでいた後、私はあなた(そして私)が望むことをするためにここに私自身の簡単な解決策を書きました: https ://stackoverflow.com/a/25575120/1607642

于 2015-08-21T09:25:33.327 に答える