2

Web アプリケーション内で Tiles を使用しています。タイル内に標準レイアウト (standard.jsp) が使用されています。standard.jsp の上には、タグ ライブラリなどに関する多くのインクルードがあります。

簡単な例を見てみましょう。

標準.jsp:

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ include file="/WEB-INF/jsp/includes/include.jsp" %>

<html>

<head>
    <tiles:insertAttribute name="head" flush="false"/>
</head>

<body>
    <tiles:insertAttribute name="body" flush="false"/>
</body>    

</html>

body.jsp:

<div id="body-div">
    <p>Hello, <c:out value="${forname}" />!</p>
</div>

これは以下を出力します:

Hello, !

タイルでタグを使用したいのですが、うまくいきません。インクルードを tile-jsp に追加した場合にのみ機能します。

以下を含む body.jsp:

<%@ include file="/WEB-INF/jsp/includes/include.jsp" %>

<div id="body-div">
    <p>Hello, <c:out value="${forname}" />!</p>
</div>

これは以下を出力します:

Hello, John!

これを行うためのより良い方法はありますか、または使用するすべての jsp にすべてのインクルードを追加する必要がありますか?

4

1 に答える 1

1

すべてのインクルードが各タイルに存在する必要はありませんが、タイルで使用される各タグ ライブラリは、使用するタイルに明確に含まれている必要があります。

例: あなたの例では、C JSTL ライブラリを使用する各タイルには、少なくとも<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>インクルードが必要です。

于 2009-02-11T09:47:00.047 に答える