Como faço para acessar <c: set var> em um <% = scriptlet%> [duplicado]

Dec 05 2020

Comecei seguindo um tutorial sobre tags JSTL. Os tutoriais de repositórios usados ​​são muito antigos, então eu queria tentar do meu jeito usando algumas versões mais recentes. Infelizmente, estou preso agora. Vou te contar o que fiz, então espero que você possa me ajudar.

Baixei 2 arquivos jar desses dois links: api , implementação .

Arquivos Jar que tenho, copiei dentro WebContent/Web-INF/lib. Agora, se eu fizer isso, recebo um erro:

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

<html>
<body>

<c:set var="varA" value="hello world" />
<%=varA %> //varA cannot be resolved to a variable

</body>
</html>

Para ser honesto, não tenho ideia de por que precisamos da instrução import quando os arquivos jar estão literalmente na libpasta do meu projeto . Além disso, alguém sabe o que está errado aqui e por que o editor não consegue encontrar minha variável varA ?

Respostas

1 LiveandLetLive Dec 05 2020 at 20:49

As variáveis ​​definidas usando tags JSTL não podem ser acessadas diretamente com um scriptlet. Pode haver duas maneiras de acessar varA.

1. Usando tags JSTL:

<c:set var="varA" value="hello world" />
<c:out value="${varA }"></c:out>

2. Usando pageContext.getAttribute:

<c:set var="varA" value="hello world" />
<%=pageContext.getAttribute("varA")%>