You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tiles.apache.org by Emi Lu <em...@encs.concordia.ca> on 2007/10/02 22:04:51 UTC

Tiles 2 setup with Struts2

Hello,

I looked at this page:

http://struts.apache.org/2.x/docs/tiles-plugin.html

Done:
=============
[1] Added

<dependency>
   <groupId>org.apache.struts</groupId>
   <artifactId>struts2-tiles-plugin</artifactId>
   <version>${version.tiles}</version>
   <scope>compile</scope>
</dependency>

    to web.xml


[2] Added

<result-types>
   <result-type name="tiles" 
class="org.apache.struts2.views.tiles.TilesResult"/>
</result-types>

   to the struts.xml file's package section



[3] Added

    <action name="HelloWorld" class="example.HelloWorld">
       <result name="success" type="tiles">TileHelloWorld</result>
    </action>

     to the struts.xml file


[4] Added
   <definition name="TileHelloWorld" template="/tiles/layout.jsp">
       <put-attribute name="body"   value="/HelloWorld.jsp"/>
   </definition>

    to tiles-defs.xml (this file is saved under /WEB-INF/)

    For struts2, where and how to notify the system to load the 
titles-defs.xml? I suppose that the system will find this file 
auto-matically?





When I tried to access this page from URL, I always get the following 
exception (tomcat5.5.23):

javax.servlet.ServletException: TileHelloWorld

org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:515)
org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:419)

root cause
org.apache.tiles.definition.NoSuchDefinitionException: TileHelloWorld
org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:392)
org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:368)
org.apache.struts2.views.tiles.TilesResult.doExecute(TilesResult.java:104)
org.apache.struts2.dispatcher.StrutsResultSupport.execute(StrutsResultSupport.java:178)
com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:348)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:253)


Any clues, which step I did wrong?

Thanks a lot!