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

Emond Papegaaij updated WICKET-4290:
------------------------------------

    Attachment: 0001-WICKET-4290-remove-page-parameters-in-onBeforeRender.patch

The problem is that Form removes the page parameters from the page that is 
processing the incoming request and then renders a new page using the original 
page parameters. This causes the request parameters to be rendered in the 
action url of the form.

This patch moves the code responsible for removing the conflicting page 
parameters to onBeforeRender. However, it loses some code that was added for 
WICKET-3438 (commented lines in the patch). The quickstart that comes with that 
bug still works correctly though.
                
> Confusion between a form component's wicket:id and a PageParameter in Wicket 
> 1.5.x
> ----------------------------------------------------------------------------------
>
>                 Key: WICKET-4290
>                 URL: https://issues.apache.org/jira/browse/WICKET-4290
>             Project: Wicket
>          Issue Type: Bug
>          Components: wicket
>    Affects Versions: 1.5.0, 1.5.1, 1.5.2, 1.5.3
>         Environment: OS Linux Mint
> Java 1.6
>            Reporter: Victor MONTANER
>         Attachments: 
> 0001-WICKET-4290-remove-page-parameters-in-onBeforeRender.patch, 
> Zencontact.tar.gz
>
>
> A Form has a strange behavior when a component has the same wicket:id than a 
> page parameter.
> To create a Bookmarkable link after a form is submited, setResponsePage is 
> called, and a PageParameter object is given as a parameter : 
>                       PageParameters params = new PageParameters();
>                       params.add("searchString", searchField.getValue());
>                       setResponsePage(SomePage.class, params);
> In Wicket 1.5, if "searchString" is also a form-component's wicket:id, the 
> form will only be submitted once : 
> searchField.getValue() will always return the first value entered by the user.
> Here's an example : 
> public class SearchPanel extends Panel {
>       public SearchPanel(String id) {
>               super(id);
>               add(new SearchForm("searchForm"));
>       }
>       private class SearchForm extends Form<String> {
>               private static final long serialVersionUID = 1L;
>               private TextField<String> searchField;
>               public SearchForm(String id) {
>                       super(id);
>                       searchField = new TextField<String>("searchString", new 
> Model<String>(""));
>                       add(searchField);
>               }
>               @Override
>               public void onSubmit() {
>                       PageParameters params = new PageParameters();
>                       params.add("searchString", searchField.getValue());
>                       setResponsePage(ListContactsPage.class, params);
>               }
>       }
> }
> I tested the same application with Wicket 1.4.17 and it was fine. I only had 
> this problem in Wicket 1.5.2 and 1.5.3.

--
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

        

Reply via email to