前提・実現したいこと
変数htmlPathにpathを入れて<jsp:include page="${htmlPath}" flush="true"/>みたいな感じで.htmlを挿入したいです.
そもそも変数を使ってincludeディレクティブで挿入ができるのか分からないのですが...
複数あるhtmlファイルのうち条件分岐で1つだけ挿入します.
条件分岐で<jsp:include page="~.html" flush="true"/>を複数書くのが面倒なので,
htmlPathにpathを格納して,最後に1つの<jsp:include page="${path}" flush="true"/>を書いてhtmlファイルを挿入したいのですが,何も表示されなくて困っています.
そもそも書き方が間違っているのかしれないのですが,書き方を教えていただけると嬉しいです.
また,一般的には私が書こうとしている変数を使った書き方ではなくて,1つ1つ".html"や".jsp"みたいに書くものでしょうか.
発生している問題・エラーメッセージ
エラーはありません.
該当のソースコード
JSP
1<%@ page language="java" contentType="text/html; charset=UTF-8" 2 pageEncoding="UTF-8"%> 3<%@ page import="java.util.*" %> 4 5<!DOCTYPE html> 6<html> 7<head> 8<meta charset="UTF-8"> 9<title>サンプル</title> 10</head> 11<body> 12 <div> 13 <h2>ハローワールド</h2> 14 <%!String a="AAA.html"; %> 15 <%!String b="BBB.html"; %> 16 <%!String c="CCC.html"; %> 17 18 <%--以下の直接pathを書き込むと,文章が挿入されます.--%> 19 <jsp:include page="AAA.html" flush="true"/> 20 <jsp:include page="BBB.html" flush="true"/> 21 <jsp:include page="CCC.html" flush="true"/> 22 23 <%--以下の変数を使ってのディレクティブでは,何も表示されません--%><%--実現したい形は下のような変数を使った挿入--%> 24 <jsp:include page="${a}" flush="true"/> 25 <jsp:include page="${b}" flush="true"/> 26 <jsp:include page="${c}" flush="true"/> 27 28 </div> 29 30</body> 31</html>
HTML
1<%--AAA.html--%> 2<div style="text-align: left;"> 3<p>Hello.world</p> 4 5</div>
試したこと
上記のソースコードが自分が試した結果です.(変数を使ってのやり方だと表示されません.)
jspファイル内の適当な場所で
"${a}"
"${b}"
"${c}"
を入れて動かしてみると
""
""
""
となり,
<jsp:include page="${a}" flush="true"/>
<jsp:include page="${b}" flush="true"/>
<jsp:include page="${c}" flush="true"/>
の${a}などは空白で正しく参照できていないのかもしれません.
また,こちらはエラーが出たもので試したことですが
<jsp:include page=${a} flush="true"/>→「引用符を入れろというエラーが出ます(""ダブルクォーテーションと認識しています.)」
<jsp:include page=<%=a%> flush="true"/>→「この書き方はできないそうです.」
回答1件
あなたの回答
tips
プレビュー