You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by "Martin Grigorov (Resolved) (JIRA)" <ji...@apache.org> on 2012/01/07 10:45:39 UTC

[jira] [Resolved] (WICKET-4305) Problems with AbstractAutoCompleteBehavior on BookmarkablePages

     [ https://issues.apache.org/jira/browse/WICKET-4305?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Martin Grigorov resolved WICKET-4305.
-------------------------------------

       Resolution: Fixed
    Fix Version/s: 6.0.0
         Assignee: Martin Grigorov
    
> Problems with AbstractAutoCompleteBehavior on BookmarkablePages
> ---------------------------------------------------------------
>
>                 Key: WICKET-4305
>                 URL: https://issues.apache.org/jira/browse/WICKET-4305
>             Project: Wicket
>          Issue Type: Bug
>          Components: wicket-extensions
>    Affects Versions: 1.5.3
>            Reporter: Daniel Peters
>            Assignee: Martin Grigorov
>             Fix For: 6.0.0
>
>
> AbstractAutoCompleteBehavior internally uses the GET parameter "q".
> If you are on a bookmarkable page that also uses the parameter q (very common for searches), AutoCompleteTextFields wont work anymore. They will only see the original q parameter that has been used to call the page.
> The autocomplete appends the q= param to the URL and read it with getParameter("q"). Since there are 2 params with the same name now, it will always get the first.
> My first fix was to rename the autocomplete parameter to something like "wicketac:q", but this breaks WicketStuff-objectautocomplete which uses the same JS, so this is probably not a good idea.
> Another idea was to get the _last_ q-parameter of the URL in AbstractAutoCompleteBehavior.
> This works quite well...
> Code:
> protected void respond(final AjaxRequestTarget target)
> {
> 	final RequestCycle requestCycle = RequestCycle.get();
> 	final List<StringValue> values = requestCycle.getRequest().getRequestParameters()
> 			.getParameterValues("q");
> 	final String val = (values != null && values.size() > 0) ? values.get(values.size() - 1)
> 			.toOptionalString() : null;
> 	onRequest(val, requestCycle);
> }

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira