[ 
https://issues.apache.org/jira/browse/WICKET-1343?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12569320#action_12569320
 ] 

demir kiracoglu commented on WICKET-1343:
-----------------------------------------

The same problem occurs when you use IndexedHybridUrlCodingStrategy. Actually 
for the above, i changed newPage() method on HybridUrlCodingStrategy  like this,

protected Page newPage(Class pageClass, RequestCycle requestCycle)
                {
                        Page page = super.newPage(pageClass, requestCycle);
                        page.setMetaData(PAGE_PARAMETERS_META_DATA_KEY,
                                (Serializable)getPageParameters().clone());
                        
page.setMetaData(ORIGINAL_TRAILING_SLASHES_COUNT_METADATA_KEY, new Integer(
                                originalUrlTrailingSlashesCount));
                        return page;
                }

Now there is no problem. It works. But i couldn't figure out how to change 
IndexedHybridUrlCodingStrategy. There is such code inside the method name  
"appendParameters" on this file which throws exception

if (i != parameters.size())
                {
                        throw new WicketRuntimeException(
                                        "Not all parameters were encoded. Make 
sure all parameter names are integers in consecutive order starting with zero. 
Current parameter names are: " +
                                                        
parameters.keySet().toString());
                }

The problem is, if you set one page parameter with key "0", then StatelessForm 
( or StatelessLink  ) also adds another one with key "wicket:interface" So the 
size of the parameters map is not equal to "i" variable.

I'm trying to find the right way but i need some help. Is there anybody reading 
these issues ? 



> HybridUrlCodingStrategy and StatelessForm ( or StatelessLink ) results in 
> invalid parameter encoding
> ----------------------------------------------------------------------------------------------------
>
>                 Key: WICKET-1343
>                 URL: https://issues.apache.org/jira/browse/WICKET-1343
>             Project: Wicket
>          Issue Type: Bug
>          Components: wicket
>    Affects Versions: 1.3.1
>            Reporter: demir kiracoglu
>
> I put a header component on one of my pages which contains a statelessform ( 
> or stateless link ) .  I mounted the page with a HybridUrlCodingStrategy . 
> When you request the page like this
> http://localhost:9696/mountpath/param1/param1value, 
> stateless form attaches another parameter which shows the forms IFormListener 
> target. The new url is like this :
> http://localhost:9696/mountpath/param1/param1value/wicket:interface/%3A0%3Aheader%3AloggedOutView%3AloginForm%3A%3AIFormSubmitListener%3A%3A/.0
> I haven't covered all the source code for now but  i think the form changes 
> the page parameters object so i think HybridUrlCodingStrategy must clone 
> initial page parameters before putting it to page metadata. But not sure that 
> this will cause any other problems 

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to