[ 
https://issues.apache.org/jira/browse/WICKET-3551?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13010449#comment-13010449
 ] 

Martin Grigorov commented on WICKET-3551:
-----------------------------------------

I think I just realize - initially the page is stateless but during render it 
becomes stateful and bevause of NEVER_REDIRECT we render the wrong markup.

> Using web.xml <error-page> to render error pages via Wicket yields undesired 
> behavior in Wicket 1.5
> ---------------------------------------------------------------------------------------------------
>
>                 Key: WICKET-3551
>                 URL: https://issues.apache.org/jira/browse/WICKET-3551
>             Project: Wicket
>          Issue Type: Bug
>          Components: wicket-core
>    Affects Versions: 1.5-RC2
>            Reporter: Matt Brictson
>         Attachments: WICKET-3551-wicket-1.4.tgz, 
> WICKET-3551-wicket-1.5-RC2.tgz
>
>
> In my applications I prefer to use Wicket to render all error pages, 
> including my 404 "not found" page. This allows me to reuse a shared page 
> template afforded by Wicket to create my error pages (i.e. by extending a 
> BasePage), rather than using copy and paste to maintain static error page 
> HTML files.
> I have been doing this as follows:
> web.xml:
>  <error-page>
>    <error-code>404</error-code>
>    <location>/error/404</location>
>  </error-page>
> Now, so long as I have an appropriate bookmarkable page mounted on the 
> "/error/404" path, the servlet container will render my page whenever a 404 
> "not found" scenario is encountered.
> This works great in Wicket 1.4.x.
> However in Wicket 1.5 (RC2 and the latest SNAPSHOT as of this writing), two 
> problems occur:
> 1. By default, Wicket 1.5 automatically performs a 302 redirect before 
> rendering the error page. This changes the URL from the invalid one (i.e. the 
> one that generated the 404) to the mounted path (/error/404 in this example). 
> This is not the desired behavior for a 404 error page; the original URL 
> requested by the user should be maintained.
> 2. If I attempt to work around the issue by overriding 
> WebPageRenderer.enableRedirectForStatelessPage() to return false, the problem 
> gets worse. Now the URL doesn't change, which is good. But Wicket gets 
> confused about the depth of the request URL path: it seems to calculate 
> relative URLs based on the mounted path rather than the URL that was 
> requested. This causes all relative resources on the page (e.g. stylesheet 
> references) to be miscalculated and break.
> I will attach two quickstarts: one showing this configuration working in 1.4, 
> and another showing the same setup failing as described above in 1.5-RC2.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to