Hi,

 

 

I am using a ListView to render the dynamic number of  select boxes and
their options.

 

I have added all select boxes into a ListView object and listView into a
form and trying to calculate a final price using  all selected values from
select boxes.

 

However, when I submit the form I got an exception before the execution of
onSubmit() method.

 

I am doing sth wrong but I could not find. Would u please give me some idea
about how to overcome this problem.

 

Thx.

Fatih

 

 

 

 

I have a database design similar to below one.

 

Product names are coming from db 

and all products have diffrent kind of Properties

And each property have options 

all also coming from db (choices in the select boxes).

 

 

Product

------------

Id

Name

 

Eg.

Audi A3

Audi A4

Audi A6

 

 

ProductProperty

----------

Id

Name

 

Eg.

Engine Type.

.

.

 

 

ProductPropertyOption

-------

Id

Name

 

Eg.

1.6lt 

2.0lt

1.9lt Diesel

.

.

 

 

 

 

 

StackTrace:

 

org.apache.wicket.WicketRuntimeException: Method onFormSubmitted of
interface org.apache.wicket.markup.html.form.IFormSubmitListener targeted at
component [MarkupContainer [Component id = productProposalForm, page =
com.cooldatasoft.page.proposal.ProductMenu, path =
1:productProposalForm.ProductMenu$ProductProposalForm, isVisible = true,
isVersioned = true]] threw an exception

      at
org.apache.wicket.RequestListenerInterface.invoke(RequestListenerInterface.j
ava:194)

      at
org.apache.wicket.request.target.component.listener.ListenerInterfaceRequest
Target.processEvents(ListenerInterfaceRequestTarget.java:73)

      at
org.apache.wicket.request.AbstractRequestCycleProcessor.processEvents(Abstra
ctRequestCycleProcessor.java:90)

      at
org.apache.wicket.RequestCycle.processEventsAndRespond(RequestCycle.java:116
6)

      at org.apache.wicket.RequestCycle.step(RequestCycle.java:1241)

      at org.apache.wicket.RequestCycle.steps(RequestCycle.java:1316)

      at org.apache.wicket.RequestCycle.request(RequestCycle.java:493)

      at
org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:354)

      at
org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:194)

      at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Application
FilterChain.java:235)

      at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCh
ain.java:206)

      at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.ja
va:233)

      at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.ja
va:175)

      at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128
)

      at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102
)

      at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java
:109)

      at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263)

      at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)

      at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http
11Protocol.java:584)

      at
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)

      at java.lang.Thread.run(Unknown Source)

Caused by: java.lang.reflect.InvocationTargetException

      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

      at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)

      at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

      at java.lang.reflect.Method.invoke(Unknown Source)

      at
org.apache.wicket.RequestListenerInterface.invoke(RequestListenerInterface.j
ava:183)

      ... 20 more

Caused by: java.lang.IllegalStateException: Attempt to set model object on
null model of component:
productProposalForm:productsPropertyListView:0:dropDown:dropDown

      at org.apache.wicket.Component.setModelObject(Component.java:2850)

      at
org.apache.wicket.markup.html.form.FormComponent.updateModel(FormComponent.j
ava:1016)

      at org.apache.wicket.markup.html.form.Form$19.validate(Form.java:1750)

      at
org.apache.wicket.markup.html.form.Form$ValidationVisitor.formComponent(Form
.java:160)

      at
org.apache.wicket.markup.html.form.FormComponent.visitFormComponentsPostOrde
rHelper(FormComponent.java:402)

      at
org.apache.wicket.markup.html.form.FormComponent.visitFormComponentsPostOrde
rHelper(FormComponent.java:389)

      at
org.apache.wicket.markup.html.form.FormComponent.visitFormComponentsPostOrde
rHelper(FormComponent.java:389)

      at
org.apache.wicket.markup.html.form.FormComponent.visitFormComponentsPostOrde
rHelper(FormComponent.java:389)

      at
org.apache.wicket.markup.html.form.FormComponent.visitFormComponentsPostOrde
rHelper(FormComponent.java:389)

      at
org.apache.wicket.markup.html.form.FormComponent.visitFormComponentsPostOrde
r(FormComponent.java:366)

      at
org.apache.wicket.markup.html.form.Form.visitFormComponentsPostOrder(Form.ja
va:1026)

      at
org.apache.wicket.markup.html.form.Form.internalUpdateFormComponentModels(Fo
rm.java:1742)

      at
org.apache.wicket.markup.html.form.Form.updateFormComponentModels(Form.java:
1709)

      at org.apache.wicket.markup.html.form.Form.process(Form.java:831)

      at
org.apache.wicket.markup.html.form.Form.onFormSubmitted(Form.java:773)

      ... 25 more

 

 

 

 

 

 

final ListView productsList = new ListView("productsPropertyListView",new
Model( (Serializable)(new ProductPropertyDAO(productId)).getResultList()) )
{

                        public void populateItem(final ListItem item) {

                             final TbProductProperty productProperty =
(TbProductProperty) item.getModelObject();

                             item.add(new
Label("productPropertyName",productProperty.getName()));

                             item.add(new NestedDropDownPanel("dropDown",
productProperty.getId()));

 

                        }

                  };

                  productsList.setReuseItems(true);

                  add(productsList);

 

 

 

 

 

 

 

 

 

 

 

public class NestedDropDownPanel extends Panel {

 

      public NestedDropDownPanel(String id,int productPropertyId) {

            super(id);

            ProductPropertyOptionDAO productPropertyOptionDAO = new
ProductPropertyOptionDAO(productPropertyId);

            DropDownChoice dropDownChoice=new DropDownChoice("dropDown",new
Model((Serializable)productPropertyOptionDAO.getResultList()),new
ChoiceRenderer("name"));

            dropDownChoice.setRequired(true);

            add(dropDownChoice);

      }

 

 

}

 

 

 

 

 

 

 

<form wicket:id="productProposalForm">

                             <table><tr><td>

                                   <fieldset>

                                         <legend>Product Proposal</legend>

                                         <font color="RED"><span
wicket:id="feedbackPanel"/></font>                                     

                                               <table>

                                                     <tr
wicket:id="productsPropertyListView">

                                                           <td><span
wicket:id="productPropertyName"></span></td>

                                                           <td><span
wicket:id="dropDown"></span></td>

                                                     </tr>

                                               </table>

                                               

                                               <input type="submit"
value="Hesapla" wicket:id="calculateButton"/>

                                         

                                   </fieldset>

                             </td></tr></table>

                        </form>

 

 

Reply via email to