You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tapestry.apache.org by rodneicouto <ro...@yahoo.com.br> on 2005/06/15 21:55:13 UTC

DirectLink and Foreach Problem

Hi,

I'm newbie in tapestry. I have the exception below when i selected one 
DirectLink

When i pass just one object in the pageNames array (Ex.: Just 
"HomeEmergencia"), everything work fine. When i put more than one 
objects, I had the problem(Ex.: {"HomeEmergencia", "Home"})

The HTML page don't have a form.

My HTML:

   <span jwcid="@Foreach" source = "ognl:pageNames" value = "ognl:pageName">
            &nbsp&nbsp&nbsp
             <span jwcid="@DirectLink" target="_parent" listener = 
"ognl:listeners.changePage"  parameters="ognl:pageName">
                         <span jwcid="@Insert" value="ognl:pageName"/>
            </span>
         </span>

My JavaClass:

public class BarraSuperior extends DefaultBasePage
{

    private String pageN = "";
    public String getPageName()
    {
        return(pageN);
    }
    public void setPageName(String value) {
        pageN = value;
    }
   
    private static final String[] pageNames = { "HomeEmergencia", "Home"};

    public String[] getPageNames() {
        return pageNames;
    }   
   
    public void changePage(IRequestCycle objCycle)
    {
        Object[] arrParameters = objCycle.getServiceParameters();
        System.out.println("WORK FINE");
        objCycle.activate(arrParameters[0].toString());

    }

}


****** EXCEPTION ********:

Component org.apache.tapestry.html.BasePage@1dfa490[HomeEmergencia] does 
not contain a component $DirectLink

location: 	context:/WEB-INF/HomeEmergencia.page, line 7, column 63
component: 	org.apache.tapestry.html.BasePage@1dfa490[HomeEmergencia]


Stack Trace:

    * org.apache.tapestry.AbstractComponent.getComponent(AbstractComponent.java:517)

    * org.apache.tapestry.AbstractPage.getNestedComponent(AbstractPage.java:252)

    * org.apache.tapestry.engine.DirectService.service(DirectService.java:136)

    * org.apache.tapestry.engine.AbstractEngine.service(AbstractEngine.java:872)

    * org.apache.tapestry.ApplicationServlet.doService(ApplicationServlet.java:197)

    * org.apache.tapestry.ApplicationServlet.doGet(ApplicationServlet.java:158)

    * javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
    * javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    * org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:358)

    * org.mortbay.jetty.servlet.WebApplicationHandler$Chain.doFilter(WebApplicationHandler.java:342)

    * org.apache.tapestry.RedirectFilter.doFilter(RedirectFilter.java:106)
    * org.mortbay.jetty.servlet.WebApplicationHandler$Chain.doFilter(WebApplicationHandler.java:334)

    * org.mortbay.jetty.servlet.WebApplicationHandler.dispatch(WebApplicationHandler.java:286)

    * org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:567)

    * org.mortbay.http.HttpContext.handle(HttpContext.java:1807)
    * org.mortbay.jetty.servlet.WebApplicationContext.handle(WebApplicationContext.java:525)

    * org.mortbay.http.HttpContext.handle(HttpContext.java:1757)
    * org.mortbay.http.HttpServer.service(HttpServer.java:879)
    * org.mortbay.http.HttpConnection.service(HttpConnection.java:789)
    * org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:960)
    * org.mortbay.http.HttpConnection.handle(HttpConnection.java:806)
    * org.mortbay.http.SocketListener.handleConnection(SocketListener.java:218)

    * org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:300)
    * org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:511)



---------------------------------------------------------------------
To unsubscribe, e-mail: tapestry-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tapestry-user-help@jakarta.apache.org


Re: DirectLink and Foreach Problem

Posted by Kent Tong <ke...@cpttm.org.mo>.
rodneicouto <rodneisc-des <at> yahoo.com.br> writes:

> public class BarraSuperior extends DefaultBasePage
> {
> 
>     private String pageN = "";
>     public String getPageName()
>     {
>         return(pageN);
>     }
>     public void setPageName(String value) {
>         pageN = value;
>     }

You must not have override getPageName() and setPageName() as they are
already defined in AbstractPage. They are used to access the name
of your page ("BarraSuperior").

At the moment the DirectLink component is getting a wrong page
name.

--
Author of an e-Book for learning Tapestry (http://www.agileskills2.org/EWDT)



---------------------------------------------------------------------
To unsubscribe, e-mail: tapestry-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tapestry-user-help@jakarta.apache.org