<%=スクリプトレット%> [duplicate]の<c:setvar>にアクセスするにはどうすればよいですか

Dec 05 2020

JSTLタグに関する1つのチュートリアルを開始しました。使用したリポジトリのチュートリアルは古すぎるので、いくつかの新しいバージョンを使用して自分のやり方で試してみたかったのです。残念ながら、私は今立ち往生しています。私がしたことをお話ししますので、あなたが私を助けてくれることを願っています。

これらの2つのリンクから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フォルダーにあるのに、なぜimportステートメントが必要なのかわかりません。また、ここで何が間違っているのか、なぜエディターが私の変数varAを見つけられないのかを誰かが知っていますか?

回答

1 LiveandLetLive Dec 05 2020 at 20:49

JSTLタグを使用して設定された変数には、スクリプトレットを使用して直接アクセスすることはできません。にアクセスするには2つの方法があります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")%>