问题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>

解决方案 »

  1.   

    在tiles-config.xml可以这样使用baselayout.jsp <!-- ======== Base layout definition ======== -->
    <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>