According to what you propose, I have added in the onSubmit() method of my
form class, the following method :

        public void onSubmit() {
           
            // Populate list using search Criteria
            populateList((RequestModel) this.getModelObject());
           
        }

populateList calls a service returning from my DB the records. The result (=
records) are put in a LoadableDetachableModel which is used by the DataView
to display the result in a DataView.

    private void populateList(RequestModel requestModel) {
        // Generate Data View to display requests in a table
        final DataView dataView = new DataView("requestList", new
RequestProvider(requestModel)) {

            public void populateItem(final Item item) {
                final Request request = (Request) item.getModelObject();
                ....

Unfortunately, when onSubmit (of my form) is called, Wicket generates the
following error :

WicketMessage: Method onFormSubmitted of interface
org.apache.wicket.markup.html.form.IFormSubmitListener targeted at component
[MarkupContainer [Component id = requestForm]] threw an exception

Root cause:

java.lang.IllegalArgumentException: A child with id 'requestList' already
exists:

How can I avoid this ?


Dipu-3 wrote:
> 
> you can call YourForm.this.getModelObject() in your forms onSubmit or
> the buttons onSubmit method.
> that would return the model object bound to your CompoundPropertyModel
> and you model object would have all the updated values
> 
> -dipu
> 
> 
> 
> 
> 
> On Mon, Sep 7, 2009 at 11:58 AM, cmoulliard<cmoulli...@gmail.com> wrote:
>>
>> Thx for the reply.
>>
>> You are right, it is not a must to use PageParameters but as this is my
>> first Wicket project, I have started to work with simple things.
>>
>> In the meantime, I have had a look to the formInput example where a
>> CompoundPropertyModel is used. I have adapted the Form to work with it.
>>
>> My question is now :
>>
>> When I call the first time my page, the url is :
>> http://localhost/request.
>> Wicket receives this request and the constructor
>> RequestPage(PageParameter
>> pageParameter) is called. Next, after filling my form in the page and
>> clicking on the onSubmit button, the request is submitted to the same
>> page.
>>
>> How can I retrieve the values of the CompoundPropertyModel from my form
>> in
>> this case ? Do I have to do something particular in the
>> setResponsePage(RequestPage.Class) to pass the compoundPropertyModel ? Do
>> I
>> need to create two different constructors : one for PageParameters and
>> the
>> other to handle CompoundPropertyModel ?
>>
>> Regards,
>>
>> Charles
>>
>>
>> egolan74 wrote:
>>>
>>> Is it a must that you use PageParameters for RequestPage?
>>> Do you need an access to it also from a URL (after mounting it in your
>>> Application).
>>>
>>> I think that a nicer way is to add a constructor that accepts the
>>> values.
>>> Even better, I would have created a POJO model.
>>> Use a CompoundPropertyModel with the form, and pass this object to the
>>> RequestPage.
>>>
>>> Eyal Golan
>>> egola...@gmail.com
>>>
>>> Visit: http://jvdrums.sourceforge.net/
>>> LinkedIn: http://www.linkedin.com/in/egolan74
>>>
>>> P  Save a tree. Please don't print this e-mail unless it's really
>>> necessary
>>>
>>>
>>> On Mon, Sep 7, 2009 at 11:38 AM, Charles Moulliard
>>> <cmoulli...@gmail.com>wrote:
>>>
>>>> Hi,
>>>>
>>>> I have created a "RequestPage" html page containing a form (= search
>>>> criteria) and a list (= Data View where the result set of data
>>>> retrieved
>>>> in
>>>> a DB according to search criteria is displayed). When the user clicks
>>>> on
>>>> the
>>>> "search criteria" button of this page, the request is redirected to the
>>>> RequestPage where we extract the search criteria values and pass them
>>>> to
>>>> the
>>>> service in charge to retrieve the data. In the java class accompagning
>>>> this
>>>> page, I have overrided the onSubmit method of the "submit button" to
>>>> pass
>>>> the value of the form fields
>>>>
>>>>    public RequestPage(final PageParameters parameters) {
>>>> ...
>>>>       Form form = new Form("searchCriteriaRequest");
>>>>
>>>>        // Add fields
>>>>        fRequestId = new TextField("fRequestId", new Model(""));
>>>>        fFileName = new TextField("fFileName", new Model(""));
>>>>        form.add(fRequestId);
>>>>        form.add(fFileName);
>>>>
>>>>        // Add buttons
>>>>        button = new Button("button") {
>>>>           �...@override
>>>>            public void onSubmit() {
>>>>                parameters.add("requestId", fRequestId.getValue());
>>>>                parameters.add("fileName", fFileName.getValue());
>>>>                setResponsePage(RequestPage.class, parameters);
>>>>            }
>>>>        };
>>>>        form.add(button);
>>>>        add(form);
>>>>
>>>> In the constructor of this RequestPage, I call a populate method with
>>>> PageParameters
>>>>
>>>>        // Populate list with search criteria values
>>>>        populateList(parameters.getKey("requestId"),
>>>> parameters.getKey("fileName"));
>>>>
>>>> Questions :
>>>> 1) Is it the good way to handle PageParameters and Form in Wicket ? If
>>>> this
>>>> is not the case, can someone point me to a good example ?
>>>> 2) The fields filled in the previous post of my page are not removed
>>>> when
>>>> I
>>>> repost a new request on my page. How can I reset these fields from the
>>>> request of the new post ?
>>>>
>>>> Regards,
>>>>
>>>> Charles Moulliard
>>>> Senior Enterprise Architect
>>>> Apache Camel Committer
>>>>
>>>> *****************************
>>>> blog : http://cmoulliard.blogspot.com
>>>>
>>>
>>>
>>> -----
>>> Eyal Golan
>>> egola...@gmail.com
>>>
>>> Visit: JVDrums
>>> LinkedIn: LinkedIn
>>>
>>
>>
>> -----
>> Charles Moulliard
>> SOA Architect
>>
>> My Blog :  http://cmoulliard.blogspot.com/
>> http://cmoulliard.blogspot.com/
>> --
>> View this message in context:
>> http://www.nabble.com/Form-and-PageParameters-tp25326933p25328647.html
>> Sent from the Wicket - User mailing list archive at Nabble.com.
>>
>>
>> ---------------------------------------------------------------------
>> 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
> 
> 
> 


-----
Charles Moulliard
SOA Architect

My Blog :  http://cmoulliard.blogspot.com/ http://cmoulliard.blogspot.com/  
-- 
View this message in context: 
http://www.nabble.com/Form-and-PageParameters-tp25326933p25329381.html
Sent from the Wicket - User mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org

Reply via email to