Re: Can i catch urls like http://localhost:8080/ShowThemePage-ti325-Twilight.html by IRequestTargetUrlCodingStrategy?
instead of mounting it set in the settings. mounting is for intercepting path segments. also set a breakpoint and see if its being hit. -igor On Thu, Jan 27, 2011 at 2:56 AM, Mike Mander wicket-m...@gmx.de wrote: 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: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org - To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org
Re: Can i catch urls like http://localhost:8080/ShowThemePage-ti325-Twilight.html by IRequestTargetUrlCodingStrategy?
Thanks Igor, i checked the settings but couldn't find anything what i could use to solve my problem. Can you please push me a bit further and tell me what i can do to map the url to a page with appropriate parameters. Thanks again Mike Original-Nachricht Datum: Thu, 27 Jan 2011 08:04:53 -0800 Von: Igor Vaynberg igor.vaynb...@gmail.com An: users@wicket.apache.org Betreff: Re: Can i catch urls like http://localhost:8080/ShowThemePage-ti325-Twilight.html; by IRequestTargetUrlCodingStrategy? instead of mounting it set in the settings. mounting is for intercepting path segments. also set a breakpoint and see if its being hit. -igor On Thu, Jan 27, 2011 at 2:56 AM, Mike Mander wicket-m...@gmx.de wrote: 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: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org - To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org -- Empfehlen Sie GMX DSL Ihren Freunden und Bekannten und wir belohnen Sie mit bis zu 50,- Euro! https://freundschaftswerbung.gmx.de - To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org
Re: Can i catch urls like http://localhost:8080/ShowThemePage-ti325-Twilight.html by IRequestTargetUrlCodingStrategy?
webapplication { protected IRequestCycleProcessor newRequestCycleProcessor() { return new WebRequestCycleProcessor() { protected IRequestCodingStrategy newRequestCodingStrategy() { return new MyStrategy();=== also make yours either extend WebRequestCodingStrategy or chain to it. -igor On Thu, Jan 27, 2011 at 11:00 AM, wicket-m...@gmx.de wrote: Thanks Igor, i checked the settings but couldn't find anything what i could use to solve my problem. Can you please push me a bit further and tell me what i can do to map the url to a page with appropriate parameters. Thanks again Mike Original-Nachricht Datum: Thu, 27 Jan 2011 08:04:53 -0800 Von: Igor Vaynberg igor.vaynb...@gmail.com An: users@wicket.apache.org Betreff: Re: Can i catch urls like http://localhost:8080/ShowThemePage-ti325-Twilight.html; by IRequestTargetUrlCodingStrategy? instead of mounting it set in the settings. mounting is for intercepting path segments. also set a breakpoint and see if its being hit. -igor On Thu, Jan 27, 2011 at 2:56 AM, Mike Mander wicket-m...@gmx.de wrote: 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: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org - To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org -- Empfehlen Sie GMX DSL Ihren Freunden und Bekannten und wir belohnen Sie mit bis zu 50,- Euro! https://freundschaftswerbung.gmx.de - To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org - To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org