Comment accéder à <c: set var> dans un <% = scriptlet%> [duplicate]

Dec 05 2020

J'ai commencé à suivre un tutoriel sur les balises JSTL. Le tutoriel sur les référentiels utilisé est trop ancien, j'ai donc voulu l'essayer à ma façon en utilisant des versions plus récentes. Malheureusement, je suis coincé maintenant. Je vais vous dire ce que j'ai fait, alors j'espère que vous pourrez m'aider.

J'ai téléchargé 2 fichiers jar à partir de ces deux liens: api , implémentation .

J'ai des fichiers Jar que j'ai copiés à l'intérieur WebContent/Web-INF/lib. Maintenant, si je fais cela, j'obtiens une erreur:

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

Pour être honnête, je n'ai aucune idée de la raison pour laquelle nous avons besoin d'une déclaration d'importation lorsque les fichiers jar sont littéralement dans le libdossier de mon projet . Aussi, est-ce que quelqu'un sait ce qui ne va pas ici et pourquoi l'éditeur ne peut pas trouver ma variable varA ?

Réponses

1 LiveandLetLive Dec 05 2020 at 20:49

Les variables définies à l'aide des balises JSTL ne sont pas accessibles directement avec un scriptlet. Il peut y avoir deux façons d'accéder varA.

1. Utilisation des balises JSTL:

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

2. Utilisation pageContext.getAttribute:

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