我正在使用带有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
答案 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