You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tapestry.apache.org by Adam Zimowski <zi...@gmail.com> on 2007/07/11 16:19:35 UTC
T5: bug in redirect?
public class Start {
String onActivate() {
return <ANYCLASS>.class.getSimpleName();
}
}
This works only if URL requested explicitly states the start page:
http://localhost/MYAPP/start
However, if URL requested omits start (default page)
http://localhost/MYAPP/
The request never returns.
Tomcat 5.5, Tap 5.0.5.
-adam
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org
Re: T5: bug in redirect?
Posted by Adam Zimowski <zi...@gmail.com>.
Thank You Nick. This helps!
On 7/11/07, Nick Westgate <ni...@key-planning.co.jp> wrote:
> Yes, this is a bug in RootPathDispatcher:
> https://issues.apache.org/jira/browse/TAPESTRY-1627
>
> Until it's fixed, if you really need to you can patch Tapestry
> at runtime by adding the code below to your AppModule.
>
> Cheers,
> Nick.
>
>
> public void contributeMasterDispatcher(
> OrderedConfiguration<Dispatcher> configuration,
> PageRenderRequestHandler pageRenderRequestHandler,
> ComponentClassResolver componentClassResolver,
> @Symbol("tapestry.start-page-name")
> String startPageName,
> @InjectService("PageResponseRenderer")
> PageResponseRenderer pageResponseRenderer)
> {
> class RootPathDispatcherFix implements Dispatcher
> {
> private final ComponentClassResolver _componentClassResolver;
>
> private final PageRenderRequestHandler _handler;
>
> @SuppressWarnings("unused")
> private final PageResponseRenderer _renderer;
>
> private final String _startPageName;
>
> private final String[] _emptyContext = new String[0];
>
> public RootPathDispatcherFix(
> final ComponentClassResolver componentClassResolver,
> final PageRenderRequestHandler handler,
> final PageResponseRenderer renderer,
> final String startPageName)
> {
> _componentClassResolver = componentClassResolver;
> _handler = handler;
> _renderer = renderer;
> _startPageName = startPageName;
> }
>
> public boolean dispatch(Request request, final Response response)
> throws IOException
> {
> // Only match the root path
> if (!request.getPath().equals("/"))
> return false;
> if (_componentClassResolver.isPageName(_startPageName))
> {
> ActionResponseGenerator responseGenerator = _handler.handle(_startPageName,
> _emptyContext);
>
> if (responseGenerator != null)
> responseGenerator.sendClientResponse(response);
> return true;
> }
> return false;
> }
> }
>
> // Looks for the root path and renders the start page
> configuration.add("RootPathFix", new RootPathDispatcherFix(componentClassResolver,
> pageRenderRequestHandler, pageResponseRenderer, startPageName), "before:RootPath");
> }
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
> For additional commands, e-mail: users-help@tapestry.apache.org
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org
Re: T5: bug in redirect?
Posted by Nick Westgate <ni...@key-planning.co.jp>.
Yes, this is a bug in RootPathDispatcher:
https://issues.apache.org/jira/browse/TAPESTRY-1627
Until it's fixed, if you really need to you can patch Tapestry
at runtime by adding the code below to your AppModule.
Cheers,
Nick.
public void contributeMasterDispatcher(
OrderedConfiguration<Dispatcher> configuration,
PageRenderRequestHandler pageRenderRequestHandler,
ComponentClassResolver componentClassResolver,
@Symbol("tapestry.start-page-name")
String startPageName,
@InjectService("PageResponseRenderer")
PageResponseRenderer pageResponseRenderer)
{
class RootPathDispatcherFix implements Dispatcher
{
private final ComponentClassResolver _componentClassResolver;
private final PageRenderRequestHandler _handler;
@SuppressWarnings("unused")
private final PageResponseRenderer _renderer;
private final String _startPageName;
private final String[] _emptyContext = new String[0];
public RootPathDispatcherFix(
final ComponentClassResolver componentClassResolver,
final PageRenderRequestHandler handler,
final PageResponseRenderer renderer,
final String startPageName)
{
_componentClassResolver = componentClassResolver;
_handler = handler;
_renderer = renderer;
_startPageName = startPageName;
}
public boolean dispatch(Request request, final Response response)
throws IOException
{
// Only match the root path
if (!request.getPath().equals("/"))
return false;
if (_componentClassResolver.isPageName(_startPageName))
{
ActionResponseGenerator responseGenerator = _handler.handle(_startPageName,
_emptyContext);
if (responseGenerator != null)
responseGenerator.sendClientResponse(response);
return true;
}
return false;
}
}
// Looks for the root path and renders the start page
configuration.add("RootPathFix", new RootPathDispatcherFix(componentClassResolver,
pageRenderRequestHandler, pageResponseRenderer, startPageName), "before:RootPath");
}
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org