我有以下代码:
<bean:define id="hasDocuments" name="BudgetSimulationDetailForm" property="hasDocuments" type="java.lang.Boolean"/>
<%
request.setAttribute("enablebtnRelatedDocs", "true");
request.setAttribute("hasDocuments", String.valueOf(hasDocuments));
%>
我想删除scriptlet,我尝试使用c:set设置不同的范围,但它不起作用。 是否可以使用JSTL标记设置请求属性?
我尝试了这个并没有奏效:
<c:set name="enablebtnRelatedDocs" value="true" scope="request"/>
以及
<c:set name="enablebtnRelatedDocs" value="${true}" scope="request"/>
之后有一个包括:
<jsp:include page="/gema/jsp/includes/detail/top_Detail.jsp">
<jsp:param name="title_key" value="${title}" />
<jsp:param name="title_bundle" value="buc" />
<jsp:param name="standard_buttons_include" value="true" />
<jsp:param name="typeId" value="53555" />
<jsp:param name="detail" value="budget" />
</jsp:include>
在包含的JSP中,请求属性显然不可见。
答案 0 :(得分:10)
听起来不错,你想使用JSP Standard Tag Library代替Scriplet。
是的,可以使用c:set
。详细了解Core Tag Library
<c:set var="enablebtnRelatedDocs" value="${true}" scope="request"/>
<c:out value="${requestScope.enablebtnRelatedDocs }"/>
默认情况下c:set
在页面上下文中设置一个属性。你可以在任何范围内设置它。
答案 1 :(得分:3)
默认情况下,JSTL核心库函数&#34;设置&#34;接受以下属性:
JSTL Core set属性(信用于tutorialspoint.com): 值, 目标, 属性, VAR, 范围
你应该使用&#34; var =&#34;而不是&#34; name =&#34;。希望这有帮助!
快乐的编码! 1: