有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java使用JSTL设置请求属性

我有以下代码:

<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中,请求属性不可见


共 (2) 个答案

  1. # 1 楼答案

    听起来不错,你想用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页面上下文中设置一个属性。你可以在任何范围内设置它

  2. # 2 楼答案

    默认情况下,JSTL核心库函数“set”接受以下属性:

    JSTL核心集属性(归功于tutorialspoint.com): 价值 目标 所有物 var, 范围

    您应该使用“var=”而不是“name=”。希望这有帮助

    编码快乐! 1enter image description here