Unfortunately, my solution does not really work yet. My page
uses

  @InjectObject("infrastructure:request")
  public abstract WebRequest getRequest();

  public void pageBeginRender(PageEvent event)
  {
    super.pageBeginRender(event);

    WebRequest request = getRequest();
    id = request.getParameterValue("id")); // (*)
  }

to read the Id of the page to display. This indeed works:

  http://localhost/app?id=someid

results in id from (*) being set to "someid".

I now wanted to support friendly URLs and wrote a ServiceEncoder
whose decode() method extracts the Id form a URL like

  http://localhost/node/id.html

and sets it:

  public void decode(ServiceEncoding encoding)
  {
    // ...
    String id = // ...

encoding.setParameterValue(ServiceConstants.SERVICE, Tapestry.PAGE_SERVICE);
    encoding.setParameterValue(ServiceConstants.PAGE, _className);
    encoding.setParameterValue("id", id);
}

But although the variable encoding contains the parameter "id"
with its value (I verifed this), the page's pageBeginRender() from
above receives null.

I feel I misunderstand something here. Why are parameters not
passed on to the page request?

Many thanks,
Kaspar

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to