JSTL <c: set> точное описание содержимого тела - PullRequest
3 голосов
/ 25 июля 2011

может кто-нибудь подсказать, как можно интерпретировать <c:set> тело?

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

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

в первом случае movieList - это строка, а во втором - массив {"One", "Two", "Three"}

, что в этих примерах равно movieList:

  • <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 ]

3 голосов
/ 25 июля 2011

Существует нет различий в интерпретируемом типе Java тела c:set. Это в всех случаях просто String.

Даже когда вы устанавливаете не-строковый тип как тело c:set, используя EL, например

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

оно будет преобразовано в String в любом случае String#valueOf().

Только когда вы обрабатываете переменную впоследствии, может быть разницей, в зависимости от того, как вы ее обработали. Например,

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

приведет к ${realMovieArray} как String[] со значениями One, Two и Three.

0 голосов
/ 24 октября 2013
<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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...