THIS IS A TEST INSTANCE. ALL YOUR CHANGES WILL BE LOST!!!!
...
I don't know universal solution, but for mounted pages you can override particular url coding strategy to encode a parameter in special way. Say, I named parameter "#" and my strategy:
Code Block |
---|
public CharSequence encode(IRequestTarget requestTarget) {
if (!(requestTarget instanceof IBookmarkablePageRequestTarget))
{
throw new IllegalArgumentException("this encoder can only be used with instances of " +
IBookmarkablePageRequestTarget.class.getName());
}
IBookmarkablePageRequestTarget target = (IBookmarkablePageRequestTarget)requestTarget;
AppendingStringBuffer url = new AppendingStringBuffer(40);
url.append(getMountPath());
final String className = target.getPageClass().getSimpleName();
PageParameters pageParameters = target.getPageParameters();
if (target.getPageMapName() != null)
{
pageParameters.put(WebRequestCodingStrategy.PAGEMAP, WebRequestCodingStrategy
.encodePageMapName(target.getPageMapName()));
}
final String fragment = pageParameters.getString("#");
if(fragment != null)
pageParameters.remove("#");
url.append("/");
url.append(className);
if(!pageParameters.isEmpty())
{
url.append("?");
appendParameters(url, pageParameters);
}
if(fragment != null)
url.append("#").append(urlEncodePathComponent(fragment));
return url;
}
|
...