1

ヘッダーとフッターに<c:import url="...jsp">を使用した単純な .jsp ファイルがあります。

ヘッダーの場合はうまく機能します。header.jsp内で ${...} EL 置換が行われ、c:importされ、ユーザーがページをリロードするたびにすべて問題なく動作します。

しかし、フッターには私が得られないことがあります: 私はいくつかの JSTL を私のfooter.jspの中に入れようとしましたが、うまくいきません。

JSTL を評価する代わりに、私の footer.jsp のタグがブラウザーに提供されます。

たとえば、Chrome からページのソース コードを表示するように要求すると、次のように表示されます。

<div>
    <c:if test="false">
       ...
    </c:if>
</div>

header.jsp と footer.jsp は両方ともc:importを使用してインポートされます。EL置換は機能するのに、JSTLタグは機能しないのはなぜですか?

「インポート」ではなく「含める」必要がある場合は、次の 2 つの質問があります。

  • JSTL を使用して「含める」ことはできますか?

  • JSTL タグが機能しないときにc:importを実行すると、EL 置換が行われるのはなぜですか?

4

1 に答える 1

1

実際に使用する必要があります<%@ include file="footer.jsp" %>-その後、すべてのELが解決されます(ヘッダーについても同様です)

<c:import />ターゲット リソースを評価し、それをページに含めます。フッターで EL 式の解析が適切に宣言されていない場合 (古いバージョンの JSP では、デフォルトではオンになっていません)、含まれる結果に<c:タグが含まれます。

于 2012-04-16T14:37:46.313 に答える