0

我找到了将 java 变量传递给 jstl 的代码,如下所示:-

<%
String str = "abc";
pageContext.setAttribute("str", str);
%>

为了在 jstl 标签中获取该值,我们将不得不使用如下代码:-

<c:out value="${str}"/>

我的主要问题是,如果有任何其他方法可以将值从 java 传递到 jstl?

4

2 回答 2

2

它会查找 pageContext、请求属性、会话属性、应用程序上下文以进行变量解析,因此您可以将值放入其中的任何一个

在此示例中,您将其放入pageContext

来自我们的EL wiki

${str}

与“原始”scriptlet 代码中的以下内容基本相同(以下示例为简单起见,实际上反射 API 用于获取方法并调用它们):

其中PageContext#findAttribute()分别扫描PageContext(页面范围)、HttpServletRequest(请求范围)、HttpSession(会话范围)和ServletContext(应用范围)的属性,直到找到第一个非空值。请注意,当值为 null 时它不会打印“null”,也不会NullPointerException像使用 scriptlet 时那样抛出不同。换句话说,EL 是空安全的

于 2013-05-06T06:36:36.273 回答
0

您没有将值传递给 JSTL,而是在设置作用域属性。您可以将属性设置为requestsessioncontext可以将request参数传递给 JSP。

于 2013-05-06T06:39:25.063 回答