2011-07-25 10 views
3

体はどのように<c:set>の体を解釈することができますか?最初のケースmovieListJSTL <c:set>本文内容正確な指定

  • <c:set var="movieList">One,Two,Three</c:set>

  • <c:set var="movieList">"One","Two","Three"</c:set>

これらの例でmovieListあるもの文字列であり、第二に、それは、配列{"One", "Two", "Three"}

ある:

  • <c:set var="movieList">"On"e","Tw"o","Thr"ee"</c:set>

  • <c:set var="movieList">"On\"e","Tw"o","Thr\"ee"</c:set>

+2

どのようなものが配列だと思いますか?彼らはすべてストリングだけです。 – skaffman

答えて

3

c:setの体の解釈Javaタイプで違いはありません。それはにあります。の場合はStringです。あなたは、このような

<c:set var="foo">${bean.someInteger}</c:set> 

としてELを使用してc:setの体のような非文字列型を設定した場合でも、それはString#valueOf()でとにかくStringに変換されます

後で変数を処理するときのみ、処理方法によってになることがあります。例えば、

<c:set var="movieList">One,Two,Three</c:set> 
<c:set var="realMovieArray" value="${fn:split(movieList, ',')}" /> 

OneTwoThreeの値をString[]である${realMovieArray}をもたらすであろう。

+0

あなたが正しいかのように見えますが、私はこの例を見つけます:http://www.velocityreviews.com/forums/t124517-jstl-how-do-i-set-an-array-variable.html - 見てみましょうスレッドの最後の投稿。だから私は仕様にいくつかの参照が必要です... –

+2

その人はナンセンスを吐くです。そのような答えはここでは忘却に落ちるので、それは悪意のある訪問者であることが分かりません。 – BalusC

+0

@BalusC、その人は正しいです。あなたの答えを再考してください。 – DylanYi

0
<c:set var="alphabet">A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z</c:set> 

<c:forTokens items="${alphabet}" delims="," var="letter"> 
    ${letter} 
</c:forTokens> 
関連する問題