Come accedo a <c: set var> in un <% = scriptlet%> [duplicate]

Dec 05 2020

Ho iniziato a seguire un tutorial sui tag JSTL. Il tutorial sui repository utilizzato è troppo vecchio, quindi ho voluto provare a modo mio utilizzando alcune versioni più recenti. Sfortunatamente, ora sono bloccato. Ti dirò cosa ho fatto, quindi spero che tu possa aiutarmi.

Ho scaricato 2 file jar da questi due link: api , implementazione .

I file Jar che ho, li ho copiati all'interno WebContent/Web-INF/lib. Ora se lo faccio, ottengo un errore:

<%@ 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>

Ad essere onesti, non ho idea del motivo per cui abbiamo bisogno dell'istruzione import quando i file jar sono letteralmente nella libcartella del mio progetto . Inoltre, qualcuno sa cosa c'è che non va qui e perché l'editor non riesce a trovare la mia variabile varA ?

Risposte

1 LiveandLetLive Dec 05 2020 at 20:49

Non è possibile accedere direttamente alle variabili impostate utilizzando i tag JSTL con uno scriptlet. Ci possono essere due modi per accedere varA.

1. Utilizzo dei tag JSTL:

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

2. Utilizzando pageContext.getAttribute:

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