On Tue, Aug 24, 2010 at 11:47 AM, Peter Ertl <pe...@gmx.org> wrote: > matej: So the new convention is that named parameters are always query string > parameters? It depends on the mapper. It is true for the standard mappers, unless the mapping looks like /mount/path/{name1}/{name2} where name1 and name2 will be named parameters but they are encoded in the path.
-Matej > > > Am 24.08.2010 um 02:13 schrieb Matej Knopp: > >> Hi, >> >> see the replies below >> >> 2010/8/23 Major Péter <majorpe...@sch.bme.hu>: >>> Hi! >>> >>> As I'm testing wicket 1.5-SNAPSHOT, I'm seeing some strange behaviors: >>> With 1.4 I've used to have url's like: >>> showuser/id/1234 >>> now when I open simply the page without params, I will see the following >>> URL: >>> showuser?[0-9]+ >> >> The number after ? is page id. Since wicket is a stateful framework >> (by default) we need to track page instances. >> >>> When I looked at the JavaDoc of the new MountMapper (which is the >>> replacement for mountBookmarkablePage), I saw that I'm having this URL, >>> because my page is not stateless. >> >> In a way, yes. Stateless pages generally do not have page ids in URL. >> >>> Q1: with 1.4 this was possible, because the URL contained the pagemap >>> instance number, or is there something else? >>> Q2: (a little n00b question) how can I find out which component makes my >>> page stateful? >> >> Usually it is a component that returns false in isStateless or >> generates a stateful listener interface URL. >> >>> >>> when I try to hit the URL now: >>> showuser/id/1234 >>> then I'm going to have indexed parameters and not named parameter with >>> 'id' name. Q3: Why is that? >> >> Because it's not a named paramerer (by default). The URL in question >> will have two indexed parameters. id and 1234. >> Big problem in 1.4 was that there was no distinction between indexed >> parameters (part of path) and named parameters (usually part query >> string). So it was difficult to build URLs such as >> showpage/13?sort=asc >> >> 1.5 fixes this by defining URL scheme like this: >> >> /page/mount/path/indexed-param0/indexed-param1?named1=value1&name2=value2 >> >> Btw. you should be able to mount the url in question as >> showuser/id/{user-id} >> >> wicket should then make user-id a named parameter. >> >>> if I have a page with URL in browser: >>> showuser?8&id=123 >>> and I rewrite the id to 124, then I'm going to still see the page for >>> 123, which is really disturbing! Q4: is there a solution for this to >>> work? Or should I make my page stateless to be able to do this?? (How?) >> >> It is still the same page instance. Obviously in your case you take >> the page parameters into account only in page constructor. So when you >> later change the id value (but leave page id the same) nothing >> changes. >> >> However if you for example override page onBeforeRender() and call >> getPageParameters() there the id parameter will have proper value. >> >>> >>> Also how could I make Wicket to use by default the /id/1234 format >>> instead of ?3&id=1234 for link creation?? >> >> You can either set id and 1234 as indexed parameters or mount the page >> as /showuser/id/{user-id} >> >> -Matej >> >>> >>> Thanks for your help. >>> >>> Best Regards, >>> Peter Major >>> >>> --------------------------------------------------------------------- >>> 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 >> > > > --------------------------------------------------------------------- > 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