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