Fahd,
Have you tried changing scope="request" in following line 
<tiles:importAttribute name="title" scope="page" />  ?

I am looking at "Struts in Action" book co-authored by Ted Husted,
"<tiles:importAttribute/> tag imports all of the Tiles context attributes
into page context: " .

So, after this, you can access the attribute named "title" through page
context.


Reddy Pingili

> -----Original Message-----
> From: Fahd Ahmed [SMTP:[EMAIL PROTECTED]
> Sent: Friday, July 16, 2004 3:46 AM
> To:   Struts Users Mailing List
> Subject:      RE: how to use controllerclasses with tiles?
> 
> ok i'll try to explain.
> 
> below is the part of my definitions-config file where i declare the
> controller class
> 
>     <definition name="header" path="/common/header.jsp" controllerClass
> ="com.sam.tilescontroller.TestTileController" >
>         <putList name="globalNavigation">
>             <item value="Home" link="/prototype" />
>         </putList>
>     </definition>
> 
> 
> my controller class is as follows
> 
> package com.sam.tilescontroller;
> 
> import java.util.*;
> import java.lang.*;
> 
> import javax.servlet.ServletContext;
> 
> import javax.servlet.http.HttpServletRequest;
> import javax.servlet.http.HttpServletResponse;
> 
> import org.apache.struts.tiles.Controller;
> import org.apache.struts.tiles.ComponentContext;
> import org.apache.struts.tiles.actions.TilesAction;
> 
> 
> class TestTileController extends TilesAction implements Controller
> {
> 
>       public void perform( ComponentContext context,
>                               HttpServletRequest request,
>                               HttpServletResponse response,
>                               ServletContext servletContext)
>       {
>               try{
>                       context.putAttribute("title", "hello from
> controller");
>               }catch(Exception ex)
>               {
>                       System.out.println("Exception in TilesController---"
> + ex);
>               }
>       }
> }
> 
> 
> now just this code generates the error no matter i use the value stored in
> context in my header.jsp or not. but for completion the header.jsp look
> like
> 
> <jsp:root
>         xmlns:jsp="http://java.sun.com/JSP/Page";
>         xmlns:c="http://java.sun.com/jsp/jstl/core";
>         xmlns:tiles="http://jakarta.apache.org/struts/tags-tiles";
>         xmlns:fn="http://java.sun.com/jsp/jstl/functions";
>         version="2.0" >
> 
>     <tiles:importAttribute name="title" scope="page" />
> 
>     <c:url value="/images/safe-logo4.png" var="logoURL"/>
>     <table width="100%">
>         <tr>
>             <td width="20%" align="left"><img src="${logoURL}" /></td>
>             <td width="60%" align="center"><font
> size="4"><b>${title}</b></font></td>
>               <td width="20%"> </td>
>         </tr>
>         <tr>
>             <td colspan="3" align="center">
>                 <c:if test="${not empty globalNavigation}">
>                     <c:forEach items="${globalNavigation}" var="item">
>                         <c:url var="link" value="${item.link}" />
>                         | <a href="${link}">${item.value}</a>
>                     </c:forEach>
>                     |
>                 </c:if>
>     <jsp:scriptlet>
>         System.out.println("ident = " + request.getParameter("title"));
>     </jsp:scriptlet>
>             </td>
>         </tr>
>     </table>
> </jsp:root>
> 
> 
> also the web.xml has the following entry
> 
>    <servlet>
>       <servlet-name>Tiles Servlet</servlet-name>
>       <servlet-class>org.apache.struts.tiles.TilesServlet</servlet-class>
>       <init-param>
>          <param-name>definitions-config</param-name>
> 
> <param-value>/WEB-INF/safe-tiles.xml,/WEB-INF/situation-tiles.xml</param-v
> al
> ue>
>       </init-param>
>       <load-on-startup>2</load-on-startup>
>    </servlet>
> 
> guess now you may be able to understand and pin point the problem.'
> 
> Fahd
> 
> 
> 
> 
> -----Original Message-----
> From: Mark Mandel [mailto:[EMAIL PROTECTED]
> Sent: Friday, July 16, 2004 10:38 AM
> To: Struts Users Mailing List
> Subject: Re: how to use controllerclasses with tiles?
> 
> 
> Fahd,
> 
> I've successfully implemented heaps of controller classes, but I'm
> having trouble visualising what you have done.
> 
> Any chance of a code example?
> 
> Mark
> 
> On Fri, 16 Jul 2004 10:35:13 +0500, Fahd Ahmed <[EMAIL PROTECTED]> wrote:
> > Hi,
> >
> > I am trying to use a controllerClass with Tiles. I am mentioning the
> > controllerClass in one of my definition tags. The controller does
> nothing
> > but put a varible in ComponentContext. On the JSP I just use the
> > importAttribute tag to get that value. But when i access the page, I
> keep
> on
> > getting the following error.
> >
> > [ServletException in:/layouts/threeColumnLayout.jsp] Error - Illegal
> class
> > access :Class org.apache.struts.tiles.ComponentDefinition can not access
> a
> > member of class com.usersmarts.sam.tilescontroller.TestTileController
> with
> > modifiers ""
> >
> > threeColumnlayout is my layout JSP and TestTileController is the
> controller
> > class I am associating with the definition tag.
> >
> > Anyone who can think of a reason???
> >
> > Regards
> > Fahd
> 
> 
> --
> E: [EMAIL PROTECTED]
> W: www.compoundtheory.com
> ICQ: 3094740
> 
> ---------------------------------------------------------------------
> 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]

Reply via email to