在 jsp 的请求范围内设置了一个 jstl 变量
<c:set var="name" value="Tiger" scope="request" />
此变量是从包含在此 jsp 中的 jspf 访问的。现在,以这两种方式访问变量有什么区别吗?
1) <c:out value="${name}" />
2) <c:out value="${requestScope.name}" />
何时使用 requestScope ?
在 jsp 的请求范围内设置了一个 jstl 变量
<c:set var="name" value="Tiger" scope="request" />
此变量是从包含在此 jsp 中的 jspf 访问的。现在,以这两种方式访问变量有什么区别吗?
1) <c:out value="${name}" />
2) <c:out value="${requestScope.name}" />
何时使用 requestScope ?
当您绝对希望您的对象来自请求而不是来自页面、会话或应用程序范围时,您可以使用 requestScope。Inded,using${name}
将在页面中搜索name
属性,然后在请求中,然后在会话中,然后在应用程序中。
假设 JSP 中的一些其他代码在name
页面范围内设置了一个属性。但是您想访问请求中的名称:您被迫使用 requestScope。
假设会话可能有一个name
属性。requestScope.name
如果 JSP 忘记在请求范围内设置名称属性,则不使用将返回会话范围内的名称。
如果 JSP 片段的目标是访问在封闭 JSP 中设置的内容,那么这个 JSP 片段应该是一个 JSP 标记,并且您应该将名称作为参数传递给这个标记。
在我的研究中(我也是 jstl 的新手),请求范围可以设置值以从响应页面请求页面,例如假设我们有一个名为index.jsp的页面 ,它的操作页面是index_action.jsp
如果我们为操作页面设置值
<c:set var="nme" scope="request" value="Janaka aravinda"/>
<% request.getRequestDispatcher("index.jsp").forward(request, response); %>
(// 我创建了nme
变量并将其值设置为Janaka aravinda
. 并返回重新加载请求页面 (index.jsp) )
现在我们可以nme
在index.jsp nme
变量中调用如下请求值
<c:out value="${nme}"/>