Hi Jack, As I said earlier I had exactly the same problem as you and so now I've done a little detective work to try and figure it out. Here is what I've found. At the bottom of my struts-config I have this.
<!-- ========== Associated Request Processor settings =================== --> <!-- Here we specified the tiles processor --> <controller processorClass="org.apache.struts.tiles.TilesRequestProcessor"> </controller> Don't ask me why, it was in the example so I put it in (I'm still kind of new to the world of struts). If I comment it out, I get the error you've reported. If I put it in, no error. Looks like I'm working on registration page similar to yours, so I quickly put together a tiles version of it. I've attached my tiles-def.xml file and struts-config.xml file for you to have a look at. Please note, my tiles-def.xml file is _really_ simple. I just wanted to experiment. In the other version I have I actually extend definitions etc. Which I'm going to look at now, to make sure that has nothing to do with it. Hope this helps. Brendan -----Original Message----- From: Wellie W. Chao [mailto:[EMAIL PROTECTED]] Sent: Sunday, March 31, 2002 9:36 PM To: Struts Users Mailing List Subject: RE: Weird problem with tiles and struts forward. Yes, that would be a problem. I'm building some pages now that will make use of findForward, so I'll let you know if I experience success with the forward elements within an action block. If I have problems too, then it's probably a bug in Struts where the forward attribute works but enclosed forward elements do not work. If I experience success, then we can compare web.xml, struts-config.xml, and tiles-defs.xml files to see how mine differ from yours. -----Original Message----- From: Struts Newsgroup [mailto:@[EMAIL PROTECTED]] Sent: Sunday, March 31, 2002 9:25 PM To: [EMAIL PROTECTED] Subject: Re: Weird problem with tiles and struts forward. Subject: Re: Weird problem with tiles and struts forward. From: "Jack Gao" <[EMAIL PROTECTED]> === Well, I don't think this is the problem. If I had to use forward attribute instead of forward tag, How can I forward to different page depend on the result? Jack "Wellie W. Chao" <[EMAIL PROTECTED]> wrote in message news:[EMAIL PROTECTED]... > Looking at the struts-config.xml file you posted in your original message, I > note that you have forward entries within the action block. I haven't tried > forward entries within an action block yet, so I don't know if those work. > What I have is this: > > <action path="/admin/index" forward="site.page.admin.index"/> > > The above line contrasts with your action blocks: > > <action path="/register"> > <forward name="success" path="register.success"/> > <forward name="failure" path="register.failure"/> > </action> > > Note that in mine, the forward is an attribute rather than an enclosed > element. > > -----Original Message----- > From: Struts Newsgroup [mailto:@[EMAIL PROTECTED]] > Sent: Sunday, March 31, 2002 2:10 PM > To: [EMAIL PROTECTED] > Subject: Re: Weird problem with tiles and struts forward. > > > Subject: Re: Weird problem with tiles and struts forward. > From: "Jack Gao" <[EMAIL PROTECTED]> > === > So, what you changed to make it work? To me, it still doesn't work, even I > use servlet 2.3 (I'm using Tomcat 4.0.3) DOCTYPE, and struts 1.1 DOCTYPE. > same configuration with forward to a jsp, it works fine, just can not > forward to a tiles definition. > > Jack > > "Wellie W. Chao" <[EMAIL PROTECTED]> wrote in message > news:[EMAIL PROTECTED]... > > Wow. I just tried it again and it works beautifully. You learn something > new > > every day. It simplifies things to be able to use a definition in a path > > rather than having to specify the location of a two line file that just > has > > a tiles:insert. I think it had something to do with the DOCTYPE. I had > > servlet 2.2 before and changed it to servlet 2.3 a few days ago. > > > > -----Original Message----- > > From: Robert Morse [mailto:[EMAIL PROTECTED]] > > Sent: Saturday, March 30, 2002 7:24 PM > > To: Struts Users Mailing List > > Subject: RE: Weird problem with tiles and struts forward. > > > > > > Yes. In fact, I changed all of the references to Tiles definitions. I'm > > using the 02/05/2002 nightly. > > > > -----Original Message----- > > From: Wellie W. Chao [mailto:[EMAIL PROTECTED]] > > Sent: Saturday, March 30, 2002 7:41 AM > > To: Struts Users Mailing List > > Subject: RE: Weird problem with tiles and struts forward. > > > > > > Are you saying you tried it and got it to work? I saw it in the docs, but > I > > never could get it to work with struts 1.1 beta, so I assumed it was a > > desired feature that hasn't yet been implemented. What version of Struts > are > > you using? > > > > -----Original Message----- > > From: Robert Morse [mailto:[EMAIL PROTECTED]] > > Sent: Saturday, March 30, 2002 9:11 AM > > To: Struts Users Mailing List > > Subject: RE: Weird problem with tiles and struts forward. > > > > > > Using path = "register.success" is perfectly fine. When I had this > problem, > > I think the issue was the version of Tiles being used with Struts 1.1. > Try > > getting one of the newer nightly builds of Struts, or vist Cedric's Tiles > > web site. There, I think he specifically points to versions that operate > > with each other. > > > > -----Original Message----- > > From: Wellie W. Chao [mailto:[EMAIL PROTECTED]] > > Sent: Saturday, March 30, 2002 5:13 AM > > To: Struts Users Mailing List > > Subject: RE: Weird problem with tiles and struts forward. > > > > > > I don't think you can use a tiles definition in <forward path="{xxx}"/>. > You > > need to specify a context-relative path to an action -- in other words, a > > URL. You could say <forward path="/register.success.jsp"/>, then include > the > > following in /register.success.jsp: > > > > <%@ taglib uri="/WEB-INF/tiles.tld" prefix="tiles" %> > > <tiles:insert definition="register.success"/> > > > > -----Original Message----- > > From: Struts Newsgroup [mailto:@[EMAIL PROTECTED]] > > Sent: Friday, March 29, 2002 8:40 PM > > To: [EMAIL PROTECTED] > > Subject: Weird problem with tiles and struts forward. > > > > > > Subject: Weird problem with tiles and struts forward. > > From: "Jack Gao" <[EMAIL PROTECTED]> > > === > > Hi, List > > > > I'm new with this struts and tiles issues. > > > > My problem is: when define a jsp page in struts-config.xml to forward to > if > > success or failed, it works fine. But if I jump to tiles, and forward to a > > definition, I keep to get servlet exception. > > > > My definition xml file has a declare like this: > > > > <definition name="register.success" extends="mainLayout"> > > <put name="body" value="/success.jsp" /> > > </definition> > > > > > > And in my struts-config.xml I delcare like this: > > > > <action path="/register" > > type="xxx.xxx.xxx.RegisterAction" > > name="registerForm" > > scope="request" > > validate="false"> > > <forward name="success" path="register.success"/> > > <forward name="failure" path="register.failure"/> > > </action> > > > > The mainLayout works fine, and I got exception when it forward to next > page. > > > > java.lang.IllegalArgumentException: Path register.success does not start > > with a "/" character > > at > > > org.apache.catalina.core.ApplicationContext.getRequestDispatcher(Application > > Context.java:570) > > at > > > org.apache.catalina.core.ApplicationContextFacade.getRequestDispatcher(Appli > > cationContextFacade.java:174) > > at > > > org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:96 > > 5) > > at > > > org.apache.struts.action.RequestProcessor.processActionForward(RequestProces > > sor.java:408) > > at > > > org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:269) > > at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1109) > > at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:470) > > at javax.servlet.http.HttpServlet.service(HttpServlet.java:760) > > at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) > > at > > > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Application > > FilterChain.java:247) > > at > > > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCh > > ain.java:193) > > at > > > filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java: > > 170) > > at > > > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Application > > FilterChain.java:213) > > at > > > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCh > > ain.java:193) > > at > > > org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.ja > > va:243) > > at > > > org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5 > > 66) > > at > > > org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472) > > at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) > > at > > > org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.ja > > va:190) > > at > > > org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5 > > 66) > > at > > > org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472) > > at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) > > at > > org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2343) > > at > > > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180 > > ) > > at > > > org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5 > > 66) > > at > > > org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve. > > java:170) > > at > > > org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5 > > 64) > > at > > > org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:170 > > ) > > at > > > org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5 > > 64) > > at > > org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:468) > > at > > > org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5 > > 64) > > at > > > org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472) > > at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) > > at > > > org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java > > :174) > > at > > > org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5 > > 66) > > at > > > org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472) > > at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) > > at > > > org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java: > > 1012) > > at > > > org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1107 > > ) > > at java.lang.Thread.run(Thread.java:484) > > > > > > Any idea? > > > > Thanks a lot! > > > > Jack > > > > > > > > > > -- > > To unsubscribe, e-mail: > > <mailto:[EMAIL PROTECTED]> > > For additional commands, e-mail: > > <mailto:[EMAIL PROTECTED]> > > > > > > -- > > To unsubscribe, e-mail: > > <mailto:[EMAIL PROTECTED]> > > For additional commands, e-mail: > > <mailto:[EMAIL PROTECTED]> > > > > > > -- > > To unsubscribe, e-mail: > > <mailto:[EMAIL PROTECTED]> > > For additional commands, e-mail: > > <mailto:[EMAIL PROTECTED]> > > > > > > -- > > To unsubscribe, e-mail: > > <mailto:[EMAIL PROTECTED]> > > For additional commands, e-mail: > > <mailto:[EMAIL PROTECTED]> > > > > > > -- > > To unsubscribe, e-mail: > > <mailto:[EMAIL PROTECTED]> > > For additional commands, e-mail: > > <mailto:[EMAIL PROTECTED]> > > > > > > -- > > To unsubscribe, e-mail: > <mailto:[EMAIL PROTECTED]> > > For additional commands, e-mail: > <mailto:[EMAIL PROTECTED]> > > > > > > -- > To unsubscribe, e-mail: > <mailto:[EMAIL PROTECTED]> > For additional commands, e-mail: > <mailto:[EMAIL PROTECTED]> > > > -- > To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> > For additional commands, e-mail: <mailto:[EMAIL PROTECTED]> > -- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]> -- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>
<?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Tiles Configuration//EN" "http://jakarta.apache.org/struts/dtds/tiles-config_1_1.dtd"> <!-- html definition Mappings --> <tiles-definitions> <definition name="main.home" path="/index.jsp" /> <definition name="register.edit" path="/registration/registration.jsp" /> </tiles-definitions>
<?xml version="1.0" encoding="ISO-8859-1" ?> <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd"> <struts-config> <!-- ========== Form Bean Definitions =================================== --> <form-beans> <!-- registration --> <form-bean name="registrationForm" type="com.bellydog.contact.struts.form.RegistrationForm"/> </form-beans> <!-- ========== Global Forward Definitions ============================== --> <global-forwards> </global-forwards> <!-- ========== Action Mapping Definitions ============================== --> <action-mappings> <action path="/saveRegistration" type="com.bellydog.contact.struts.action.SaveRegistrationAction" name="registrationForm" scope="request" input="/registration/registration.jsp" validate="true"> <forward name="success" path="main.home"/> <forward name="failure" path="register.edit" /> <forward name="cancel" path="main.home"/> </action> <!-- Edit user registration --> <action path="/editRegistration" type="com.bellydog.contact.struts.action.EditRegistrationAction" name="registrationForm" scope="request" validate="false"> <forward name="success" path="register.edit"/> </action> </action-mappings> <!-- ========== Associated Request Processor settings =================== --> <!-- Here we specified the tiles processor --> <controller processorClass="org.apache.struts.tiles.TilesRequestProcessor"> </controller> </struts-config>
-- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>