我想将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,所以这不起作用(标题只显示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
)。
答案 0 :(得分:0)
您必须升级到至少JSP 2.0才能使<jsp:param>
中的EL工作。 JSP 1.2 syntax reference未在<jsp:param>
中提及任何EL支持,而JSP 2.0 syntax reference则支持。