I just tried it. I added this to tiles.xml
<tiles-definitions>
<definition name="homeTiles" template="/pages/layout/layout.jsp">
<put name="title" value="Home"/>
<put name="header" value="/pages/layout/header.jsp" />
</definition>
<definition name="test" extends="homeTiles">
<put name="title" value="Test Title"/>
<put name="body" value="/pages/test.jsp" />
</definition>
</tiles-definitions>
And pointed my browser to http://localhost:8080/ProjTiles/pages/test . I
got error 404.
any idea
Shahak Nagiel wrote:
1) You do need to configure a tile for every page, but since tile definitions
use inheritance, it's not a big deal. You just define what's unique to that
page (typically the page title and the body content, but can obviously be other
things as well). Here's what you're missing:
In tiles.xml:
<tiles-definitions>
<definition name="homeTiles" template="/pages/layout/layout.jsp">
<put name="title" value="Home"/>
<put name="header" value="/pages/layout/header.jsp" />
<put name="footer" value="/pages/layout/footer.jsp" /> <!-- just an
example -->
<put name="nav" value="/pages/layout/sideNav.jsp" /> <!-- just an
example -->
</definition>
<definition name="tile.TestPage" extends="homeTiles"> <!-- will automatically
inherit the attributes of 'homeTiles" -->
<put name="title" value="Test Title"/>
<put name="body" value="/pages/test.jsp" />
</definition>
</tiles-definitions>
2) Then, in struts.xml, instead of forwarding to /pages/test.jsp, forward to
"tile.TestPage" instead. Presto.
----- Original Message ----
From: Mansour <[EMAIL PROTECTED]>
To: Struts Users Mailing List <user@struts.apache.org>
Sent: Monday, May 14, 2007 9:08:48 PM
Subject: Re: Problems getting started with Tiles2/S2
I followed every single step in this email. and couldn't get tiles to
work properly.
I am not getting any error but the pages are displaying the way they are
with no header added. I am not sure how tile works but it seems to me
that I have to configure it for each single page which doesn't make
sense to me. Here's exactly what I did:
in web.xml added :
<listener>
<listener-class>org.apache.struts2.tiles.StrutsTilesListener</listener-class>
</listener>
In tiles.xml in the same directory as web.xml :
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE tiles-definitions PUBLIC
"-//Apache Software Foundation//DTD Tiles Configuration 2.0//EN"
"http://struts.apache.org/dtds/tiles-config_2_0.dtd";>
<tiles-definitions>
<definition name="homeTiles" template="/pages/layout/layout.jsp">
<put name="title" value="Home"/>
<put name="header" value="/pages/layout/header.jsp" />
</definition>
</tiles-definitions>
in /pages/layout/layout.jsp :
<%@ taglib uri="http://tiles.apache.org/tags-tiles"; prefix="tiles"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<tiles:importAttribute name="title" scope="request"/>
<html>
<head><title><tiles:getAsString name="title"/></title></head>
<body>
<tiles:insertAttribute name="header"/>
<p id="body">
<tiles:insertAttribute name="body"/>
</p>
</body>
</html>
in /pages/layout/header.jsp simply:
This is a header for testing !
and in my testing page /pages/test.jsp:
<%@ taglib prefix="s" uri="/struts-tags" %>
This is a testing page !
What's going on ? can any one help?
Rick Schumeyer wrote:
I can now answer my own question regarding Struts2/Tiles2. I hope
this information helps someone else.
I frankly have little grasp of the relationship between S2 and T2, but
this information here works for me. If anything is incorrect or
misleading I would love to know about it.
This information applies to Struts 2.0.6. This version is only
compatible with whatever version of tiles is included. As is stated
in many places, it does not work with the current latest version of
Tiles, 2.0.3.
So, if you are trying to use Tiles 2.0.3 or later...don't read the
rest of this message.
In your web.xml you will need a section like this:
<listener>
<listener-class>
org.apache.struts2.tiles.StrutsTilesListener
</listener-class>
</listener>
In the same directory you need a file called tiles.xml (I'm not sure
how this is found...I saw someone else who has a file called
tiles-defs.xml)
THIS IS IMPORTANT: Use the DTD below regardless of what you see in
other documentation.
Notice the use of "put" and not "put-attribute" that you may have seen
elsewhere.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE tiles-definitions PUBLIC
"-//Apache Software Foundation//DTD Tiles Configuration 2.0//EN"
"http://struts.apache.org/dtds/tiles-config_2_0.dtd";>
<tiles-definitions>
<definition name="homeTiles" template="/layout/layout.jsp">
<put name="title" value="Home"/>
<put name="header" value="/test/header.jsp" />
<put name="menu" value="/test/menu.jsp"/>
<put name="body" value="/test/home.jsp"/>
<put name="footer" value="/test/footer.jsp"/>
</definition>
</tiles-definitions>
And in layout.jsp use:
<%@ taglib uri="http://tiles.apache.org/tags-tiles"; prefix="tiles"%>
Combined with statements like:
<tiles:insertAttribute name="header" />
Good luck.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]