¿Cómo accedo a <c: set var> en un <% = scriptlet%> [duplicado]

Dec 05 2020

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 libcarpeta de mi proyecto . Además, ¿alguien sabe qué está mal aquí y por qué el editor no puede encontrar mi variable varA ?

Respuestas

1 LiveandLetLive Dec 05 2020 at 20:49

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")%>