2011-06-27 10 views
3

に私はCを使用していた場合、JSPに(iはスプリングMVC 3を使用している)場合<C:Cを設定し、<:設定とC:春

<c:set var="myVar" value="${JavaClass.MY_KEY}"/> 
<c:if test="${myVar == code}"> 
    Do Somthing 
</c:if> 

が、この場合C内を:コードがある場合実行されません。それはworkes

<c:if test="${'ABC' == code}"> 
    Do Somthing 
</c:if>  

私が与える

(セットCなし)。

誰もが感謝

+0

関連:http://stackoverflow.com/questions/3732608/how-to-reference-constants-in-el – BalusC

答えて

4

${JavaClass.MY_KEY}私が間違っ

をやって何を教えてもらえますJavaClass属性名の下に格納されているアプリケーションスコープ、そして、ページ内のオブジェクトを探し、その要求は、セッション。見つかった場合は、このオブジェクトのメソッドgetMY_KEY()を呼び出します。

これは、この表現がやっていたとは思えません。どんなスコープにもそのようなオブジェクトがないので、それは空の文字列(またはnull、私は確かに言うことができませんでした)に評価します。

JSP ELを使用してクラス定数にアクセスする方法はありません。あなたができることは、ゲッターが定数を返すように、オブジェクトをあるスコープに格納することです。

4

JSP ELを使用してJavaClass.MY_KEYに直接アクセスすることはできませんが、スクリプトレットone-liner *で実行できます。 JSP ELがそれらにアクセスするためのより良い方法を提供していますまで、静的フィールドと列挙型の定数を参照することができるワンライナーの

<c:set var="myVar" value="<%=JavaClass.MY_KEY%>"/> 

*一般的には、スクリプトレットは避けるべきであるが、これらのタイプが便利です。

関連する問題