将Java变量值传递给JSP页面中的JSTL的方法



我找到了像这样将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,您正在设置作用域属性。可以将属性设置为requestsessioncontext,也可以将request参数传递给JSP。

最新更新