3

「定数」のJSTLファイルを用意して、他のファイルで参照したいと思います。

例えば

定数.jsp:

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

<c:set var="colour" value="blue"/>
<c:set var="car">Audi</c:set>

その他のファイル:

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

<c:import url="constants.jsp"/>
<p>I drive an ${car} which is ${colour}</p>

上記のコードは (明らかに) 機能しません。どうすれば仕事に似たものを手に入れることができますか?

名前空間も使用できればボーナス ポイントです。

4

1 に答える 1

5

include ディレクティブを使用できます。

<%@include file="/constants.jsp" %>

または、動的インクルードを使用することもできますが、変数はページ スコープではなく、リクエストに格納する必要があります。

<jsp:include page="/constants.jsp" />

<c:set var="colour" value="blue" scope="request"/>
<c:set var="car" scope="request">Audi</c:set>

しかし、おそらく最良の方法は、これらすべての定数をオブジェクトに入れ、このオブジェクトをサーブレットまたはフィルターからの要求 (またはセッション、またはアプリケーション) に格納することです。

private class Constants {

    private String color = "blue";
    private String car = "Audi";

    public String getColor() {
        return color;
    }

    public String getCar() {
        return car;
    }
}

...

request.setAttribute("constants", new Constants());

...

<p>I drive an ${constants.car} which is ${constants.color}</p>
于 2012-07-06T17:59:06.340 に答える