0

コンポーネントを表すJPSがあります。これらのコンポーネントJSPに、JSPのコンテンツが実行される前後にHTMLを書き込ませたいと思います。

component.jsp

<@page session="false">
<%= "hello " + "world" %>

このJSP/サーブレットをレンダリングするときに、次のようにレンダリングします。

<div class="component">
hello world
</div>

さまざまな「ラッパー」を作成できるようにしたいのですが、JSPに応じて、JSPのコンテンツを正しいコンテンツでラップすることを含めます。将来的にラッパーを変更/拡張したい場合は、1か所でのみ実行したいと思います(数百のコンポーネントになる可能性があります)。

<@page extends = "...">で何かできるでしょうか?

ありがとう

4

2 に答える 2

1

欲しいものはnamed: tag files です。JSP 2.0 で導入

このアプローチでは、jsp を使用して JSP タグを記述できるため、という名前のフォルダーを作成し、WEB-INF/tagsこのフォルダー内に「通常の」jsp を作成する必要があります。

<%@tag description="tag description" %>作成するタグには、これがタグであることを示すために、次の開始命令が必要です 。

これを使用するには、次の手順で使用するタグを参照する必要があります。<%@ taglib tagdir="/WEB-INF/tags" prefix="custom"%>

したがって、次のようなことができます: WEB-INF/tags/myTag.tag


<%@tag description="hello tag" %>
<%@attribute name="name" required="false" type="java.lang.String"%>
<html><head></head><body>
<h1>Hello <%=name%></h1>
<jsp:doBody />
</body>

index.jsp


<%@ taglib tagdir="/WEB-INF/tags" prefix="custom"%>
<custom:myTag name="My Name">this is the content</custom:myTag>

結果はページ印刷になります

<html><head></head><body>
<h1>Hello My Name</h1>
this is the content
</body>
于 2012-06-30T20:42:10.620 に答える
0

これはひどい考えです。スクリプトレットを含む JSP は 1998 年のテクノロジです。 もう誰もこれらを書きません。

JSP を作成する必要がある場合は、JSTL と、SiteMesh や Tiles などを使用してページを合成することをお勧めします。

さらに良いアイデアは、Web アプリと一緒にモバイル ソリューションを簡単に実行できるようにすることです。サービスとテンプレートは、JSP よりも私の好みです。

于 2012-06-30T20:29:30.983 に答える