我找到了将java变量传递给jstl的代码,如下所示: -
<%
String str = "abc";
pageContext.setAttribute("str", str);
%>
要在jstl标签中获取该值,我们必须使用如下代码: -
<c:out value="${str}"/>
我的主要问题是,如果还有其他方法可以传递值,从java到jstl?
答案 0 :(得分:2)
它查找pageContext,请求属性,会话属性,变量解析的应用程序上下文,因此您可以将值放在任何
中在此示例中,您将其放在pageContext
来自我们的EL wiki
${str}
与“raw”scriptlet代码中的以下内容基本相同(下面的示例是为了简单,实际上反射API用于获取方法并调用它们):
其中PageContext#findAttribute()
分别扫描PageContext
(页面范围),HttpServletRequest
(请求范围),HttpSession
(会话范围)和ServletContext
的属性(应用范围)直到找到第一个非空值。请注意,当值为null时,它不会打印“null”,也不会像使用scriptlet时那样抛出NullPointerException
。换句话说,EL是 null-safe 。
答案 1 :(得分:0)
您没有将值传递给JSTL,而是设置范围属性。您可以将属性设置为request
,session
和context
,也可以将request
参数传递给JSP。