如何使用include标记将变量传递给JSP片段?

时间:2016-07-05 15:01:35

标签: jsp

要保持DRY,我有一个简单的标题摘要,如下所示:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
  pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
  <head>

  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1">

  <script src="${pageContext.request.contextPath}/assets/js/jquery.js"></script>
  <title>Insert title here</title>
</head>
<body>

它包含我想要在每个页面顶部的基本HTML标题。然后,对于我创建的每个JSP页面,我只使用<%@ include file="_header.jsp" %>包含它,它使我的代码保持良好和干净。

然而,这意味着我的每一个页面都具有相同的<title>属性。有没有办法将变量传递给_header.jsp文件并以这种方式更新标题?我知道您可以在使用<jsp:forward>操作时传递变量,但我需要使用<%@ include %>,以便显示页面的其余部分。

我还可以使用每个自定义页面底部的以下JavaScript更新标题:

<script>
    document.title = "This is the new page title.";
</script>

但我认为这是更好的方法。

1 个答案:

答案 0 :(得分:1)

尝试使用支持参数传递的<jsp:include page="_header.jsp" > <jsp:param name="title" value="This is the page title"/> </jsp:include> 指令。

<title>${param.title}</title>

然后在头文件JSP中,按如下方式读取参数:

for