Tiles没有正确包含jsp-s

时间:2013-03-17 15:51:47

标签: tiles

我的瓷砖2.2.2有问题。 似乎jsp-s没有像它们应该的那样被读取。 我的tiles.xml看起来像这样:

 

<definition name="notLoggedInLayout" template="WEB-INF/pages/template/templatenotloggedin.jsp">
    <put-attribute name="css" value="css/style.css" />
    <put-attribute name="header" value="WEB-INF/pages/template/notloggedinheader.jsp" />
    <put-attribute name="body" value="" />
    <put-attribute name="footer" value="WEB-INF/pages/template/footer.jsp" />
</definition>

<definition name="login" extends="notLoggedInLayout">
    <put-attribute name="title" value="Login" />
    <put-attribute name="navigation" value="" />
    <put-attribute name="body" value="WEB-INF/pages/login/login.jsp" />
</definition>

和我的templatenotloggedin.jsp看起来像这样:

<%@ taglib
    uri="http://tiles.apache.org/tags-tiles"
    prefix="tiles"
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta
    http-equiv="Content-Type"
    content="text/html; charset=ISO-8859-1"
>
<link
    type="text/css"
    rel="stylesheet"
    href="<tiles:getAsString name='css'/>"
/>
</head>
<body>
    <tiles:insertAttribute name="header" />
    <tiles:insertAttribute name="body" />
    <tiles:insertAttribute name="footer" />
</body>
</html>

我的问题是形成的页面如下所示:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta
    http-equiv="Content-Type"
    content="text/html; charset=ISO-8859-1"
>
<link
    type="text/css"
    rel="stylesheet"
    href="css/style.css"
/>
</head>
<body>
    WEB-INF/pages/template/notloggedinheader.jsp
    WEB-INF/pages/login/login.jspsadsdf
    WEB-INF/pages/template/footer.jsp
</body>
</html>

有谁知道我做错了什么?

1 个答案:

答案 0 :(得分:0)

在发布此问题后的几分钟内找到了答案。 问题是jsp路径需要在路径之前有斜杠。

这样:

<put-attribute name="body" value="WEB-INF/pages/login/login.jsp" />

成为这个:

<put-attribute name="body" value="/WEB-INF/pages/login/login.jsp" />