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-val
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]

Reply via email to