Description
After installing a WebRequest instance that makes all URLs absolute, render_to_buffer does not work anymore. The problem is that WicketFilter assumes that all URLs are relative (WebFilter#getRelativePath removes the first char of the URL).
Proposed fixes:
1 in WebApplication#addBufferedResponse remove the leading "/" from the buffer id when present
2 or alternatively, remove the leading "/" from the URL (when present) in WebRequestCycle, just before addBudderedResponse is called
Here is the installed AbsoluteServletWebRequest:
/**
- WebServletRequest that makes bookmarkable links absolute.
- Note: use this only when WickterFilter listens on the root context.
* - @author Erik van Oosten
*/
public class AbsoluteServletWebRequest extends ServletWebRequest {
public AbsoluteServletWebRequest(HttpServletRequest servletRequest)
{ super(servletRequest); } @Override
public int getDepthRelativeToWicketHandler()
@Override
public String getRelativePathPrefixToWicketHandler()
@Override
public String getRelativePathPrefixToContextRoot() { return "/"; }
}