can someone suggest how possible to interpret <c:set>
body?
<c:set var="movieList">One,Two,Three</c:set>
<c:set var="movieList">"One","Two","Three"</c:set>
in the first case movieList
is a string and in the second it is an array {"One", "Two", "Three"}
what is movieList
in these examples:
<c:set var="movieList">"On"e","Tw"o","Thr"ee"</c:set>
<c:set var="movieList">"On\"e开发者_高级运维","Tw"o","Thr\"ee"</c:set>
There's no difference in the interpreted Java type of the c:set
's body. It are in all cases just String
.
Even when you set a non-String type as c:set
's body using EL such as
<c:set var="foo">${bean.someInteger}</c:set>
it'll be converted to String
anyway by String#valueOf()
.
Only when you process the variable afterwards, there may be difference, depending on how you processed it. For example,
<c:set var="movieList">One,Two,Three</c:set>
<c:set var="realMovieArray" value="${fn:split(movieList, ',')}" />
will result ${realMovieArray}
being a String[]
with values of One
, Two
and Three
.
<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>
精彩评论