Como posso acessar os elementos da lista Java do meu código JavaScript do lado do cliente?
-
20-09-2019 - |
Pergunta
Eu tenho o seguinte script simples, que estou usando para criar dinamicamente os elementos da lista em um <ul>
<script type="text/javascript">
function generate(){
var arr = new Array();
<c:forEach items="${articles}" var="a" varStatus="status">
$('#listitems').append(
"<li>"+${a.title}+"</li>"
);
arr[${status.index}] ="${a.slideShow.images}";
</c:forEach>
}
</script>
Meu problema decorre do atributo imagens. Cada artigo possui uma apresentação de slides e cada apresentação de slides tem uma lista de imagens. Quero retirar a primeira imagem da lista de imagens através da lista Jave.get (índice); Eu quero fazer algo como "$ {a.slideshow.images.get (0)}";. O get () é um método Java do objeto List.
Alguma ideia?
Solução
Em El, você pode usar a notação de cinta para acessar um List
elemento por índice. Assim, o seguinte deve fazer:
arr[${status.index}] = "${a.slideShow.images[0]}";
Isso fará com que os bastidores façam exatamente como você propôs: a.getSlideShow().getImages().get(0)
.
Dito isto, você normalmente declara matrizes JS como segue:
var arr = [];
o new
A palavra -chave é considerada desencorajada em JS.
Outras dicas
Como os que comentaram sua pergunta sugerem, esse é um mal -entendido comum. Quando o seu JavaScript é executado (no navegador), Java e JSP e JSTL não estão mais disponíveis. O executivo JSTL/JSP no servidor para criar origem/html que é enviado ao cliente.
Veja a fonte da sua página - ela pode lançar alguma luz. Você não deve ver o JSP/JSTL que você inclui acima.