以下代码导致错误:
<c:set var="test" value="test1"/> <% String resp = "abc"; resp = resp + test; pageContext.setAttribute("resp", resp); %> <c:out value="${resp}"/>
错误说
"error a line 4: unknown symbol 'test'".
如何test从JSTL代码传递到JSP scriptlet?
test
脚本是嵌入在页面代码中的原始Java,如果您在脚本中声明变量,那么它们将成为嵌入在页面中的局部变量。
相比之下,JSTL工作完全与范围属性,无论是在page,request或session范围。您需要重新编写脚本以test将其作为属性来获取:
page
request
session
<c:set var="test" value="test1"/> <% String resp = "abc"; String test = pageContext.getAttribute("test"); resp = resp + test; pageContext.setAttribute("resp", resp); %> <c:out value="${resp}"/>
如果你看一下文档的<c:set>,您将看到您可以指定scope为 page,request或者session,它默认为page。
<c:set>
scope
更好的是,根本不要使用scriptlet:它们会使婴儿耶稣哭泣。