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, 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 >> 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 wrote: >> > Hi, >> > >> > urls in my shop look like this >> > >> > http://localhost:8080/ShowThemePage-ti325-Twilight.html >> > >> > 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 >> > >> > mount(new ThemeUrlCodingStrategy()); >> > >> > >> > The strategy looks like >> > >> > 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; >> > } >> > } >> > >> > >> > 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
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 > 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 wrote: > > Hi, > > > > urls in my shop look like this > > > > http://localhost:8080/ShowThemePage-ti325-Twilight.html > > > > 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 > > > > mount(new ThemeUrlCodingStrategy()); > > > > > > The strategy looks like > > > > 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; > > } > > } > > > > > > 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?
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 wrote: > Hi, > > urls in my shop look like this > > http://localhost:8080/ShowThemePage-ti325-Twilight.html > > 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 > > mount(new ThemeUrlCodingStrategy()); > > > The strategy looks like > > 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; > } > } > > > 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
Can i catch urls like "http://localhost:8080/ShowThemePage-ti325-Twilight.html" by IRequestTargetUrlCodingStrategy?
Hi, urls in my shop look like this http://localhost:8080/ShowThemePage-ti325-Twilight.html 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 mount(new ThemeUrlCodingStrategy()); The strategy looks like 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; } } 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