I also have these lines in my struts-config.xml, and am using tiles-defs.xml
successfully:
<controller processorClass="org.apache.struts.tiles.TilesRequestProcessor"/>
<plug-in className="org.apache.struts.tiles.TilesPlugin">
  <set-property property="definitions-config"
value="/WEB-INF/conf/tiles-defs.xml"/>
</plug-in>

-----Original Message-----
From: Wendy Smoak [mailto:[EMAIL PROTECTED]]
Sent: Monday, November 25, 2002 2:11 PM
To: 'Struts Users Mailing List'
Subject: [tiles] More help with tabbed tiles



On Cedric's advice, I decided to try the xml config file approach for tiles.
I've got classicLayout and vboxLayout working, and now I'm trying to get a
tabbed page to work.

Currently, I'm getting:
javax.servlet.ServletException: Can't get definitions factory from context.

Google turned up a post that said I ought to have 'ActionComponentServlet'
defined in web.xml but that is not how the tiles-definitions example is set
up.  The message is from August 2001 so I assume that advice is no longer
valid.

My web.xml, less the filters and security stuff:

<web-app>
  <!-- Standard Action Servlet Configuration (with debugging) -->
  <servlet>
    <servlet-name>action</servlet-name>
    <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
    <init-param>
      <param-name>application</param-name>
      <param-value>ApplicationResources</param-value>
    </init-param>
    <init-param>
      <param-name>config</param-name>
      <param-value>/WEB-INF/struts-config.xml</param-value>
    </init-param>
    <init-param>
      <param-name>definitions-config</param-name>
      <param-value>/WEB-INF/tiles-defs.xml</param-value>
    </init-param>
    <init-param>
      <param-name>debug</param-name>
      <param-value>2</param-value>
    </init-param>
    <init-param>
      <param-name>detail</param-name>
      <param-value>2</param-value>
    </init-param>
    <init-param>
      <param-name>validate</param-name>
      <param-value>true</param-value>
    </init-param>
    <load-on-startup>2</load-on-startup>
  </servlet>


  <!-- Standard Action Servlet Mapping -->
  <servlet-mapping>
    <servlet-name>action</servlet-name>
    <url-pattern>*.do</url-pattern>
  </servlet-mapping>
  
</web-app>

The relevant bits of struts-config for 'testAction.do':

<struts-config>

  <action-mappings>
    <action    path="/testAction"
               type="edu.asu.vpia.example.TestAction"
               scope="request" >
      <forward name="success"
path="/WEB-INF/jsp/tilesTest/tabsTest.jsp" />               
    </action>
  </action-mappings>
  
  <message-resources parameter="ApplicationResources"/>

</struts-config>

tabsTest.jsp merely has:
<%@ page language="java" %>
<%@ taglib uri="/WEB-INF/tld/struts-tiles.tld" prefix="tiles" %>

<tiles:insert definition="examples.tabs.page" flush="true" />

And what the heck, this is already really long, so here's tiles-defs.xml:
<tiles-definitions>

  <!-- Master layout and default tiles used by all pages -->
  <definition name="examples.masterPage"
path="/WEB-INF/tilesTest/classicLayout.jsp">
          <put name="title"  value="Tiles 1.1 Examples" />
          <put name="header" value="/WEB-INF/tilesTest/header.jsp" />
          <put name="menu"   value="/WEB-INF/tilesTest/menu.jsp" />
          <put name="footer" value="/WEB-INF/tilesTest/footer.jsp" />
          <put name="body"   value="/WEB-INF/tilesTest/body.jsp" />
  </definition>

  <!-- tabs page -->
  <definition name="examples.tabs.page" extends="examples.masterPage">
          <put name="title"  value="Tiles 1.1 Tabs layout example" />
          <put name="body"   value="examples.tabs.body" />
  </definition>

 <!-- body using tabs -->
  <definition name="examples.tabs.body"
path="/WEB-INF/tilesTest/tabsLayout.jsp" >
        <put name="selectedIndex"  value="0" />
        <put name="parameterName"  value="selected" />
    <putList name="tabList" >
      <item value="Doc Home"               link="/WEB-INF/tilesTest/a.jsp"
/>
      <item value="Quick overview"         link="/WEB-INF/tilesTest/b.jsp"
/>
    </putList>
  </definition>

</tiles-definitions>

As you can see, I've stolen most of this from tiles-docutmentation webapp.
Obviously I missed one or more things, becasue that webapp works and mine
doesn't!

Hopefully someone who has done this before will immediately see what I've
missed. :)

Thanks!

-- 
Wendy Smoak
Applications Systems Analyst, Sr.
Arizona State University PA Information Resources Management

--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to