Как получить доступ к <c: set var> в <% = scriptlet%> [дубликат]

Dec 05 2020

Я начал следовать одному руководству по тегам JSTL. Используемое руководство по репозиториям слишком старое, поэтому я хотел попробовать его по-своему, используя несколько более новых версий. К сожалению, сейчас я застрял. Я расскажу вам, что я сделал, поэтому надеюсь, вы сможете мне помочь.

Я скачал 2 файла jar по этим двум ссылкам: api , implementation .

Jar файлы у меня есть, я скопировал внутрь WebContent/Web-INF/lib. Теперь, если я это сделаю, я получаю сообщение об ошибке:

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

Честно говоря, я понятия не имею, зачем нам нужен оператор импорта, когда файлы jar буквально находятся в libпапке моего проекта . Кроме того, кто-нибудь знает, что здесь не так и почему редактор не может найти мою переменную varA ?

Ответы

1 LiveandLetLive Dec 05 2020 at 20:49

Переменные, установленные с помощью тегов JSTL, не могут быть доступны напрямую с помощью скриптлета. Доступ может быть два varA.

1. Использование тегов JSTL:

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

2. Использование pageContext.getAttribute:

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