JSPでスクリプト変数を宣言的に使いたいので,jsp:useBeanタグを利用するってのはどや?
伝わりづらいので,実例を.
== a.jsp == <%@ page import="java.util.HashMap" %> <%@ page import="java.util.Map" %> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <% Map map = new HashMap(); map.put("a", "ABCDEFG"); request.setAttribute("map", map); %> <jsp:forward page="b.jsp" />
(別にJSPじゃなくてもいいんだけど)こんな具合にリクエストの属性に値を詰めておき,他のJSP(b.jsp)でその値を利用する場合,b.jspは,
== b.jsp == <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> ${map["a"]} </html>
こんな感じに書くだけなんだけど,当然ながらスクリプト変数:mapはIDEのJSPエディタには認識されない.
それをできれば,エディタに認識させ,コード補完を利くようにしたい,ただそれだけのためにjsp:useBeanタグを使うってのはどうよ?つまり,こう書いちゃダメって話だ.
== b.jsp == <%@ page contentType="text/html;charset=UTF-8" language="java" %> <jsp:useBean id="map" type="java.util.Map" scope="request"/> <html> ${map["a"]} </html>
(スクリプト変数の元ネタを)カスタムタグに宣言できれば,TagExtraInfo経由でスクリプト変数を宣言できるんだけど,こんな場合のようにServlet側で設定した値を宣言的にスクリプト変数として扱うには,jse:useBeanタグがもってこいなんだよね.
#こんな場合って,どんな場合だって言えば,ぶっちゃけClickだな.:-D
デバッグライトかなんかに,JSPで宣言的に扱えるスクリプト変数のjsp:useBeanタグの記述例をダンプしといて,「よかったら,それJSPに貼って使って〜」ってやってみようかな?
#includeディレクティブで読み込むのもアリか.