On Fri, May 1, 2009 at 9:16 AM, Angelo Chen <[email protected]>wrote:
>
> Hi,
>
> following code redirects to a results page under mysearch:
>
> Object onSuccessFromMySearchForm() {
> return "mysearch/results";
> }
>
> now I need to append a query string after the page name:
>
> return "mysearch/results?12345";
>
> this will trigger an exception:
>
> Unable to resolve 'mysearch/results?12345' to a known page name.
>
> question: how to append a query string to a page name? Thanks,
>
Rather than query string, you'd tend to append to the path in Tapestry. I
don't think you can do that with the "page name" string return, though, so
the simplest way is to return a configured page object that can passivate.
public class Results {
Integer value;
public void onActivate(EventContext context) {
if( context.getCount() > 0 )
value = context.get(String.class,0);
}
public Integer onPassivate() {
return value;
}
public Results forValue( Integer value ) {
this.value = value;
return this;
}
}
public class MySearch {
@Inject
private Results resultPage;
public Object onSuccessFromMySearchForm() {
return resultPage.forValue(12345);
}
}
--
Geoffrey Wiseman
http://www.geoffreywiseman.ca/