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]