问题1
确保struts-config.xml包含tiles文件声明
如:
<plug-in className="org.apache.struts.tiles.TilesPlugin">
<set-property value="/WEB-INF/tiles-config.xml" property="definitions-config" />
<set-property value="true" property="moduleAware" />
<set-property value="true" property="definitions-parser-validate" />
</plug-in>
确保你的layout.jsp包含<%@ taglib uri="/WEB-INF/struts-tiles.tld" prefix="tiles" %>
如baselayout.jsp
<%@ page contentType="text/html; charset=GBK" %>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>
<%@ taglib uri="/WEB-INF/struts-tiles.tld" prefix="tiles" %>
<%@ taglib uri="/WEB-INF/struts-nested.tld" prefix="nested" %>
<%@ taglib uri="/WEB-INF/display.tld" prefix="display" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html:html>
<head>
<%-- Push tiles attributes in page context --%>
<tiles:importAttribute />
<title>
<bean:message name="titleKey"/>
</title>
<%-- Get Javascript List --%>
<tiles:useAttribute id="scriptList" name="scripts"
classname="java.util.List" ignore="true"/> <logic:iterate id="js" name="scriptList" >
<script type="text/javascript"
src="<bean:write name='js' />"></script>
</logic:iterate>
<%-- Get List of Stylesheets --%>
<tiles:useAttribute id="styleList" name="styles"
classname="java.util.List" ignore="true"/>
<logic:iterate id="css" name="styleList">
<link rel="stylesheet" type="text/css" media="all"
href="<bean:write name='css' />" />
</logic:iterate>
</head>
<body>
<tiles:insert attribute="header"/>
<table width="100%" height="80%" border="0" cellpadding="0" cellspacing="0">
<tr>
<tiles:insert attribute="sidebar"/>
<tiles:insert attribute="content"/>
</tr>
</table></body>
</html:html>
确保struts-config.xml包含tiles文件声明
如:
<plug-in className="org.apache.struts.tiles.TilesPlugin">
<set-property value="/WEB-INF/tiles-config.xml" property="definitions-config" />
<set-property value="true" property="moduleAware" />
<set-property value="true" property="definitions-parser-validate" />
</plug-in>
确保你的layout.jsp包含<%@ taglib uri="/WEB-INF/struts-tiles.tld" prefix="tiles" %>
如baselayout.jsp
<%@ page contentType="text/html; charset=GBK" %>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>
<%@ taglib uri="/WEB-INF/struts-tiles.tld" prefix="tiles" %>
<%@ taglib uri="/WEB-INF/struts-nested.tld" prefix="nested" %>
<%@ taglib uri="/WEB-INF/display.tld" prefix="display" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html:html>
<head>
<%-- Push tiles attributes in page context --%>
<tiles:importAttribute />
<title>
<bean:message name="titleKey"/>
</title>
<%-- Get Javascript List --%>
<tiles:useAttribute id="scriptList" name="scripts"
classname="java.util.List" ignore="true"/> <logic:iterate id="js" name="scriptList" >
<script type="text/javascript"
src="<bean:write name='js' />"></script>
</logic:iterate>
<%-- Get List of Stylesheets --%>
<tiles:useAttribute id="styleList" name="styles"
classname="java.util.List" ignore="true"/>
<logic:iterate id="css" name="styleList">
<link rel="stylesheet" type="text/css" media="all"
href="<bean:write name='css' />" />
</logic:iterate>
</head>
<body>
<tiles:insert attribute="header"/>
<table width="100%" height="80%" border="0" cellpadding="0" cellspacing="0">
<tr>
<tiles:insert attribute="sidebar"/>
<tiles:insert attribute="content"/>
</tr>
</table></body>
</html:html>
<definition name="baseLayout" path="/layouts/baselayout.jsp">
<put name="titleKey"/>
<!-- Default Javascript File List -->
<putList name="scripts">
<add value="/scripts/global.js"/>
</putList>
<!-- Default Stylesheet File List-->
<putList name="styles">
<add value="/styles/default.css"/>
<add value="/styles/messages.css"/>
</putList>
</definition> <definition name=".a" extends="baseLayout">
<put name="titleKey" value="a.homepage.title" />
<put name="header" value="/a/header.jsp"/>
</definition><definition name=".a.b" extends=".a">
<put name="sidebar" value="/a/b/sidebar.jsp"/>
<put name="content" value="/a/b/homepage.jsp"/>
</definition><definition name=".a.b.c" extends=".a.b">
<put name="content" value="/a/b/c.jsp"/>
</definition>