我想在html页面中显示具有适当值的< title> 元素。我有一个基本布局jsp和相应的tile定义。我想在每页的基础上设置< title> 标记的值,可能在tile定义xml中。
到目前为止,我有以下
tiles.xml:
<definition name="base" template="/WEB-INF/jsp/layouts/base.jsp">
<put-attribute name="page-title" value="" />
</definition>
<definition name="home" extends="base">
<put-attribute name="page-title" value="Homepage" />
</definition>
base.jsp:
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title><tiles:insertAttribute name="title" ignore="true" /></title>
...
不显示在home定义中设置的title属性。但为什么不呢?这样做的正确方法是什么?
答案 0 :(得分:0)
您正在使用tiles属性“page-title”作为字符串,而默认行为是将其视为模板(并且找不到该模板,并且您已选择忽略该失败)。
将属性声明为type =“string”,例如
<definition name="base" template="/WEB-INF/jsp/layouts/base.jsp">
<put-attribute name="page-title" value="" type="string"/>
</definition>
<definition name="home" extends="base">
<put-attribute name="page-title" value="Homepage" type="string" />
</definition>
或明确将该属性用作字符串,例如
<tiles:getAsString name="title" />