Hi,

urls in my shop look like this
<code>
http://localhost:8080/ShowThemePage-ti325-Twilight.html
</code>
ShowThemePage should be mapped to my ThemePage.class
The ti325 and Twilight Tokens should be indexed parameters
and the .html is for ornament.

Until now i mounted my own Strategy in my application.init
<code>
            mount(new ThemeUrlCodingStrategy());
</code>

The strategy looks like
<code>
import org.apache.wicket.IRequestTarget;
import org.apache.wicket.PageParameters;
import org.apache.wicket.request.RequestParameters;
import org.apache.wicket.request.target.coding.AbstractRequestTargetUrlCodingStrategy; import org.apache.wicket.request.target.component.BookmarkablePageRequestTarget; import org.apache.wicket.request.target.component.IBookmarkablePageRequestTarget;
import org.apache.wicket.util.string.AppendingStringBuffer;

import de.shop.shopping.ThemePage;

public class ThemeUrlCodingStrategy extends AbstractRequestTargetUrlCodingStrategy {

    public ThemeUrlCodingStrategy() {
        super("ShowThemePage");
    }

    @Override
    public CharSequence encode(IRequestTarget requestTarget) {
AppendingStringBuffer url = new AppendingStringBuffer("ShowThemePage-ti"); IBookmarkablePageRequestTarget target = (IBookmarkablePageRequestTarget) requestTarget;
        PageParameters parameters = target.getPageParameters();
url.append(urlEncodePathComponent(String.valueOf(parameters.get("ti")))).append("-").append(urlEncodePathComponent(escape(String.valueOf(parameters.get("name")))));
        return url.append(".html");
    }

    private String escape(String value) {
        return value == null ? null : value.replaceAll(" ", "_");
    }

    @Override
    public IRequestTarget decode(RequestParameters requestParameters) {
return new BookmarkablePageRequestTarget(ThemePage.class, new PageParameters("ti=99, name=Hello_kitty")); // for testing use constant parameters
    }

    @Override
    public boolean matches(IRequestTarget requestTarget) {
        if (requestTarget instanceof IBookmarkablePageRequestTarget) {
IBookmarkablePageRequestTarget target = (IBookmarkablePageRequestTarget) requestTarget;
            return ThemePage.class.isAssignableFrom(target.getPageClass());
        }
        return false;
    }
}
</code>

But all i get is a 404 for page not found. Do i have to implement something else?

Thanks for help
Mike

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to