代码之家  ›  专栏  ›  技术社区  ›  jeff

jsp在请求属性中使用HashMap包含页面参数

  •  1
  • jeff  · 技术社区  · 14 年前

    我想将HTML页面标题传递给包含的jsp页面,但标题是在一个碰巧是hashMap的请求属性中传递给视图的 dbTable

    这很管用,但我不喜欢把Java和我的视图混合在一起

    <%@ page import="java.util.HashMap" %>
    <% HashMap dbTable = ((HashMap)request.getAttribute("dbTable")); %>
    <jsp:include page="inc_header.jsp" flush="true">
        <jsp:param name="pageTitle" value="<%= \"Confirm Delete \" + ((HashMap)request.getAttribute(\"dbTable\")).get(\"strTableTitle\") + \" Data \"%>" />
    </jsp:include>
    

    我只使用jsp 1.2,所以这不起作用(title只显示EL语句)

    <jsp:include page="inc_header.jsp" flush="true">
      <jsp:param name="pageTitle" value="Confirm Deletion of ${dbTable.strTableTitle} data" />
    </jsp:include>
    

    这在页面正文中有效

    <h1>Confirm Deletion of <c:out value="${dbTable.strTableTitle}" /> Data </h1>
    

    但这会产生未终止的字符串错误

    <jsp:include page="inc_header.jsp" flush="true">
        <jsp:param name="pageTitle" value="Confirm Deletion of <c:out value="${dbTable.strTableTitle}" /> data" />
    </jsp:include>
    

    有没有想过怎么做这个清洁剂?我的所有视图都使用了标题,我希望生成最终的标题字符串(例如。, Confirm Delete HashMap.DatabaseTitle data )在每个视图模板中。

    1 回复  |  直到 14 年前
        1
  •  0
  •   BalusC    14 年前

    你必须升级到至少JSP 2.0才能让EL加入 <jsp:param> 去工作。 JSP 1.2 syntax reference 没有提到任何支持 <jsp:param> ,而 JSP 2.0 syntax reference 做。