2

我正在将 Apache Tiles 2.1.4 与 Spring MVC 3 一起使用。我设法将它们配置在一起,一切正常。我的下一步是添加 CSS,这就是我遇到问题的地方 - 这很可能是一个简单的问题,但我无法让我的模板 jsp 获取 css。

来自我的 tiles-defs.xml 的片段

<definition name="baseLayout" template="/WEB-INF/tiles/baseLayout.jsp">
  <put-attribute name="title"  value="Template"/>
  <put-attribute name="header" value="/WEB-INF/tiles/header.jsp"/>
  <put-attribute name="styles" value="base.css"/>
  <put-attribute name="subheader"   value="/WEB-INF/tiles/subheader.jsp"/>
  <put-attribute name="menu"   value="/WEB-INF/tiles/menu.jsp"/>
  <put-list-attribute name="bodyItems">
      <add-attribute value="/WEB-INF/tiles/body.jsp"/>
  </put-list-attribute>

来自我的模板 jsp (baseLayout.jsp) 的片段

<link type="text/css" rel="stylesheet" href="<%=request.getContextPath()%>/WEB-INF/css/displayTagTable.css"/>

来自我的 CSS 的片段:

body {
background-color: red;

}

我使 css 尽可能简单,只是为了检查我的 jsp 是否获取 css 文件。

我还检查了我的 css 文件是否位于正确的位置 - 但我的 jsp 文件没有获取 css 文件。有人可以帮忙吗?

任何帮助都感激不尽。

谢谢,扎汉希尔

4

1 回答 1

2

其中的文件WEB-INF不直接通过公共 URL 提供。Spring 和 Tile 能够以WEB-INF编程方式间接提供 JSP 文件。

您能否尝试将 css 目录移动到 WebContent 并更新您的<link>标签href属性?

在你开始工作后,我有一个建议。如果在 JSP 的顶部包含此页面指令,则可以使用 Tiles 标记:

<%@taglib prefix="tiles" uri="http://tiles.apache.org/tags-tiles"%>

如果需要,这允许您将 CSS 路径作为属性存储在 中tiles-defs.xml,并使用标记从 JSP 中检索它:

<link type="text/css" rel="stylesheet"
    href="<tiles:getAsString name="IDENTIFIER_HERE"/>"/>

您的 CSS URL 将替换 tiles 标记。你可以在多个 Tiles 定义中使用这个 CSS 路径。

其余的 Tiles 标签记录在这里:Tiles Tag Reference Sheet

于 2010-02-08T15:50:09.197 回答