¿Cómo accedo a <c: set var> en un <% = scriptlet%> [duplicado]
Comencé a seguir un tutorial sobre etiquetas JSTL. El tutorial de repositorios utilizado es demasiado antiguo, así que quería probarlo a mi manera con algunas versiones más nuevas. Desafortunadamente, ahora estoy atascado. Te diré lo que hice, así que espero que puedas ayudarme.
He descargado 2 archivos jar de estos dos enlaces: api , aplicación .
Los archivos jar que tengo, los copié dentro WebContent/Web-INF/lib
. Ahora, si hago esto, obtengo un error:
<%@ 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, no tengo idea de por qué necesitamos una declaración de importación cuando los archivos jar están literalmente en la lib
carpeta de mi proyecto . Además, ¿alguien sabe qué está mal aquí y por qué el editor no puede encontrar mi variable varA ?
Respuestas
No se puede acceder directamente a las variables configuradas utilizando etiquetas JSTL con un scriptlet. Puede haber dos formas de acceder varA
.
1. Usando etiquetas JSTL:
<c:set var="varA" value="hello world" />
<c:out value="${varA }"></c:out>
2. Utilizando pageContext.getAttribute
:
<c:set var="varA" value="hello world" />
<%=pageContext.getAttribute("varA")%>