Bagaimana cara mengakses <c: set var> di <% = scriptlet%> [duplikat]

Dec 05 2020

Saya mulai mengikuti satu tutorial tentang tag JSTL. Tutorial repositori yang digunakan terlalu lama, jadi saya ingin mencobanya dengan cara saya menggunakan beberapa versi yang lebih baru. Sayangnya, saya terjebak sekarang. Saya akan memberi tahu Anda apa yang saya lakukan, jadi saya harap, Anda dapat membantu saya.

Saya mengunduh 2 file jar dari dua tautan ini: api , implementasi .

File jar yang saya dapat, saya salin di dalamnya WebContent/Web-INF/lib. Sekarang jika saya melakukan ini, saya mendapatkan kesalahan:

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

Sejujurnya saya tidak tahu mengapa kita membutuhkan pernyataan import ketika file jar benar-benar ada di libfolder proyek saya . Juga, apakah ada yang tahu apa yang salah di sini dan mengapa editor tidak dapat menemukan variabel varA saya ?

Jawaban

1 LiveandLetLive Dec 05 2020 at 20:49

Variabel yang disetel menggunakan tag JSTL tidak dapat diakses secara langsung dengan scriptlet. Ada dua cara untuk mengakses varA.

1. Menggunakan tag JSTL:

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

2. Menggunakan pageContext.getAttribute:

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