在jsp页面中将java变量值传递给jstl的方法

在jsp页面中将java变量值传递给jstl的方法,jsp,jakarta-ee,jstl,el,Jsp,Jakarta Ee,Jstl,El,我找到了将java变量传递给jstl的代码,如下所示:- <% String str = "abc"; pageContext.setAttribute("str", str); %> <c:out value="${str}"/> 为了在jstl标记中获得该值,我们必须使用如下代码:- <% String str = "abc"; pageContext.setAttribute("str", str); %> <c:out value="$

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

<%
String str = "abc";
pageContext.setAttribute("str", str);
%>
<c:out value="${str}"/>

为了在jstl标记中获得该值,我们必须使用如下代码:-

<%
String str = "abc";
pageContext.setAttribute("str", str);
%>
<c:out value="${str}"/>


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

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

在本例中,您将其放入
pageContext

从我们

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


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

您不是在向JSTL传递值,而是在设置作用域属性。您可以将属性设置为
请求
会话
上下文
,或者您可以将
请求
参数传递给JSP。

仅在同一页面中是,因此页面上下文。只是想确认是否有其他选择?其他选择是将其作为url传递(例如:someurl.com?key=value参数并作为${param.key}访问)好的,非常感谢,但是如果还有其他选择,因为我不想将变量传递到url中..是的,我正在设置范围属性,但是,如果有其他方法来执行类似于Jigar Joshi在评论中提到的logicPass请求参数,请帮助我。