我正在使用带有图块的css文件,但它无法正常工作。
我的tiles.xml是:
<tiles-definitions>
<definition name="baseLayout" template="/jsps/mail/mailbase.jsp">
<put-attribute name="css" value="/css/mail.css" type="string" />
<put-attribute name="menu" value="/jsps/mail/menu.jsp"/>
<put-attribute name="body" value=""/>
</definition>
<definition name="inbox.tile" extends="baseLayout">
<put-attribute name="css" value="/css/mail.css" type="string" />
<put-attribute name="body" value="/jsps/mail/inbox.jsp"/>
</definition>
<definition name="msgdetail.tile" extends="baseLayout">
<put-attribute name="body" value="/jsps/mail/msgDetails.jsp"/>
</definition>
<definition name="compose.tile" extends="baseLayout">
<put-attribute name="body" value="/jsps/mail/compose.jsp"/>
</definition>
<definition name="msgsent.tile" extends="baseLayout">
<put-attribute name="body" value="/jsps/mail/msg_sent.html"/>
</definition>
</tiles-definitions>
我的jsp是:
<%@ page contentType="text/html;charset=UTF-8"%>
<%@ taglib prefix="tiles" uri="http://tiles.apache.org/tags-tiles"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
**<link type="text/css" rel="stylesheet" href="<tiles:getAsString name='css'/>"/>**
</head>
<body>
<div id="left"><tiles:insertAttribute name="menu"/></div>
<div id="right"><tiles:insertAttribute name="body"/></div>
</body>
</html>
我的CSS文件“mail.css”位于 tomcat_root / web-app-name / css / mail.css
和jsp在 tomcat_root / web-app-name / jsps / mailbase.jsp
控制流程如下:
请求----------&gt; inboxaction(struts2.xml)------------------&gt; inbox.tile(tiles.xml)
答案 0 :(得分:0)
该行
<link type="text/css" rel="stylesheet" href="<tiles:getAsString name='css'/>"/>
将被翻译为
<link type="text/css" rel="stylesheet" href="/css/mail.css"/>
但您的CSS文件位于/web-app-name/css/mail.css
。
您应始终使用<c:url>
生成网址:
<tiles:useAttribute id="relativeCssUrl" name="css"/>
<c:url var="absoluteCssUrl" value="${relativeCssUrl}"/>
<link type="text/css" rel="stylesheet" href="${absoluteCssUrl}"/>
或者您也可以使用
<link type="text/css" rel="stylesheet" href="${request.contextPath}/<tiles:getAsString name='css'/>"/>