2016-12-14 4 views
0

サーブレットコンテキストに格納されているインクルードページがいくつかあります。私は動的にJSP内のいくつかのページを含めるが、私はできません。JSPに動的ページが含まれています

<jsp:include page="<%=(String)application.getAttribute("headURL")%>"/> 

しかし、それは私に引用符に関連するエラーを与える:私は何 です。私はそれに変更しようとしました:

<jsp:include page="<%=(String)application.getAttribute(\"headURL\")%>"/> 

しかし、どちらも動作しません。

どうすればいいですか?

ありがとうございます!

+0

でなければならないと思います。それは実際のURLかJSPファイルのパスか? – Loc

+0

それはのようなJSPファイルのパスを次のようになります。中/Project/WEB-INF/jspf/head.jspf – Ommadawn

答えて

1

次のように行います

<jsp:include page="${headURL}"></jsp:include> 

まず、サーブレットコンテナは、スコープを要求し、その後、ページスコープにheadURLを検索後、Sessionスコープ、[アプリケーションスコープます(お使いの場合)

headURLを設定する必要がありますJSPが呼び出される前にApplicationスコープのどこかで実行されます。

しかし、私はそれはheadURLの値が何であるかを/WEB-INF/jspf/head.jspf(アプリ名を削除する必要がある)

1

Expression言語を使用してURLにアクセスできます。だからあなたは引用符を逃れる必要はありません。

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
<title>Insert title here</title> 
</head> 
<body> 
    <c:set value="/WEB-INF/jspf/head.jspf" var="headURL" scope="application" /> 
    <jsp:include page="${headURL}"></jsp:include> 
</body> 
</html> 

/Project/WebContent/WEB-INF/jspf/head.jspfにあるファイルが含まれます:ここでは

は、あなたがこれを行うことができます例です。

EDIT:
この行は唯一のテストのためです。

<c:set value="/WEB-INF/jspf/head.jspf" var="headURL" scope="application" /> 

あなたが唯一の必要があります:私は、コンテキストがheadURL属性設定

<jsp:include page="${headURL}"></jsp:include> 

とのWebContentへの相対パス。

+0

しかし、私はURLを書きたくない「/WEB-INF/jspf/head.jspf」ファイル。コンテキスト属性から読みたい。 – Ommadawn

+0

清算が追加されました。 –

関連する問題