根据我的经验,很少/永远不需要设置scope="request"EL变量.
例如,我有一个页面,给定一个item参数,根据其属性构造一个特定于该项目的URL.此页面包含在需要呈现项目链接的任何页面中.
<%-- Accepts a parameter named 'item' --%>
<c:set var="urlTemplate" value="${param['item'].urlTemplate}" />
<c:choose>
<c:when test="${empty urlTemplate}">
<c:set var="itemUrl" scope="request" value="/missingProductUrl.jsp"/>
</c:when>
<c:otherwise>
<c:url var="itemUrl" scope="request" value="${urlTemplate}">
<c:param name="id" value="${param['item'].id}"/>
</c:url>
</c:otherwise>
</c:choose>
Run Code Online (Sandbox Code Playgroud)
<jsp:include page="itemLink.jsp">
<jsp:param name="item" value="${currentItem}"/>
</jsp:include>
<%-- 'itemUrl' has request scope --%>
<a href="${itemUrl}">Item Link</a>
Run Code Online (Sandbox Code Playgroud)
<%-- Accepts a parameter named 'item' --%>
<c:set var="urlTemplate" value="${param['item'].urlTemplate}" />
<c:choose>
<c:when test="${empty urlTemplate}">
<c:set var="itemUrl" value="/missingProductUrl.jsp"/>
</c:when>
<c:otherwise>
<c:url var="itemUrl" value="${urlTemplate}"> …Run Code Online (Sandbox Code Playgroud)