在我的 header.jsp 中,我有以下代码:
<head>
<meta name="description" content="<%= request.getParameter("description") %>" />
<meta property="og:description" content="<%= request.getParameter("description") %>" />
<meta property="og:title" content="<%= request.getParameter("title") %>" />
<meta property="og:type" content="website" />
<title>Title Website</title>
</head>
<body>
<div id="nav">navigation menu</div>
</body>
在我的页面“Reservation.jsp”上,我有以下代码:
<jsp:include page="includes/header.jsp">
<jsp:param name="reservation" value="current" />
<jsp:param name="description" value="Please reserve your place" />
<jsp:param name="title" value="Please reserve your place" />
</jsp:include>
<div id="content">
content
</div>
<jsp:include page="includes/footer.jsp">
</jsp:include>
当我在浏览器中打开reservation.jsp页面时,选项卡中的标题仍然是“标题网站”而不是“请预订位置”。
到底出了什么问题?
您已在 header.jsp 中声明了
<title>Title Website</title>
所以,标题显示标题网站
根据文档,当调用包含或转发元素时,原始请求对象将提供给目标页面。如果您希望向该页面提供附加数据,可以使用 jsp:param 元素将参数附加到请求对象:
<jsp:include page="..." >
<jsp:param name="title" value="Please reserve your place"/>
</jsp:include>
您已为页面中的
title
元素添加了参数 include
。就这样。与名为 title
的参数和 HTML
标签 <title>
没有关系。他们完全不同,并且有自己的目的。为了设置 header.jsp 标题中的参数值,您需要像这样进行更改
<title><%= request.getParameter("title") %></title>
因此,标题请求参数的值将在页面创建期间在标题标签中设置
找到了,是的
<title><%= request.getParameter("title") %></title>
而不是
<title>Title Website</title>