JSP元标题属性不起作用

时间:2013-12-30 10:33:22

标签: jsp title meta

在我的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页面时,标签中的标题会保留“标题网站”而不是“请保留您的位置”。

到底出了什么问题?

2 个答案:

答案 0 :(得分:2)

您已在header.jsp

中声明
<title>Title Website</title>

因此,标题显示标题网站

根据文档,当调用include或forward元素时,原始请求对象将提供给目标页面。如果您希望向该页面提供其他数据,可以使用jsp:param元素将参数附加到请求对象:

<jsp:include page="..." >
    <jsp:param name="title" value="Please reserve your place"/>
</jsp:include>

您在页面中为title元素添加了参数include。这就是全部。与名为titleHTML标记<title>的参数无关。他们完全不同,他们有自己的目的。要在header.jsp的标题中设置param值,您需要将其更改为

<title><%= request.getParameter("title") %></title>

因此,在页面创建期间,标题请求参数的值将在标题标记中设置

答案 1 :(得分:1)

找到它,它是

<title><%= request.getParameter("title") %></title>

而不是

<title>Title Website</title>