You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@wicket.apache.org by Emond Papegaaij <em...@topicus.nl> on 2012/01/12 16:22:16 UTC

WICKET-4290 and regression of WICKET-4014 in 1.5.4

Hi all,

The change for 4290 causes problems with mounted pages, especially when the 
mount has parameters. For example, if you mount a page at 
'mount/${param}/part2', links on that page will should get an url like 
'mount/value/part2?0-1.ILinkListener-path-to-component', however with the 
change for 4290, the url looks like 'mount//part2?0-1.ILinkListener-path-to-
component'. The reason the full mount path is used, is because of WICKET-4014: 
when a page is expired, the path is used to re-instantiate the page, without 
invoking the listener. For WICKET-4290, Martin and I decided to change 
Component.urlFor to require explicit page parameters to avoid clashes with 
form fields.

I see no way to fix both 4290 and 4014 for all cases, therefore the best way 
seems to be an option to either prevent parameter clashes or to prevent page 
expired exceptions. I just pushed a change to the 1.5.x branch that implements 
this option, in addition to the change I made earlier to reuse the 
PageParameters from the page. It now also merges the PageParameters from the 
handler into the page parameters.

IMHO this problem is big enough to not release 1.5.4 as it is now. It's a 
regression of WICKET-4014 on pages with page parameters, it results in strange 
looking urls and most importantly, it breaks the Selenium tests of our 
application :)

Best regards,
Emond