带有CSS的Apache Tiles 2.1.4

时间:2010-02-08 15:02:33

标签: css apache model-view-controller spring tiles2

我正在使用带有Spring MVC 3的Apache Tiles 2.1.4。我已经设法将这些配置在一起,一切正常。我的下一步是添加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文件。有人可以帮忙吗?

非常感谢任何帮助。

谢谢, Zahanghir

1 个答案:

答案 0 :(得分:2)

WEB-INF中的文件不会直接通过公共网址提供。 Spring和tiles能够以编程方式从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网址将替换tiles标记。您可以在多个Tiles定义中使用此CSS路径。

其余的Tiles标签记录在此处:Tiles Tag Reference Sheet