A very good lesson learned.
Thanks to Per and Martijn very much..

2008/5/3 Martijn Dashorst <[EMAIL PROTECTED]>:

> You can nest models and use a model as the value for a PropertyModel.
> A PropertyModel knows how to cope with null values as it will return a
> null. Components and the label component in particular will render an
> empty string when the model value was found to be null.
>
> So nest or chain your model inside PropertyModels:
>
> add(new Label("xxx", new PropertyModel(model, "fieldX")));
> add(new Label("yyy", new PropertyModel(model, "fieldY")));
>
> Read the model documentation on the wiki [1]. Try to understand it and
> commit it to your brain. Print the page, and put it under your pillow
> at night. Read it while on the toilet, pin it to the side of your
> monitor, stick it to your rear view mirror, print it on transparent
> foil and stick it to the inside of your glasses.
>
> Martijn
>
> [1]
> http://cwiki.apache.org/WICKET/working-with-wicket-models.html#WorkingwithWicketmodels-Chainingmodels
>
> On 5/2/08, smallufo <[EMAIL PROTECTED]> wrote:
> > Yes .
> >
> > In the WebPage , I add MyPanel like this :
> >
> >  myPanel = new MyPanel("myPanel" , new PropertyModel(this , "myobj"));
> >
> > myPanel.setVisible(false);
> >  myPanel.setOutputMarkupPlaceholderTag(true);
> >  add(myPanel);
> >
> >
> > And in the MyPanel :
> >
> >  public class MyPanel extends Panel
> >  {
> >   private MyObj myObj;
> >
> >   public MyPanel(String id , IModel model)
> >   {
> >     super(id);
> >     this.myObj = (MyObj) model.getObject();
> >
> >     add(new Label("xxx" , myObj.getFieldX.toString()));
> >     add(new Label("yyy" , myObj.getFieldY.toString()));
> >
> >   }
> >  }
> >
> >  Because myObj passed to MyPanel is initially null ,
> >  In the MyPanel construction time , myObj.getFieldX , myObj.getFieldY
> will
> >  throw NPEs here...
> >
> >  I don't know how to solve it .....
> >
> >
> >
> >  2008/5/2 Per Newgro <[EMAIL PROTECTED]>:
> >
> >
> >  > The code you provided should work. The NPEs comes from within the
> Panel?
> >  > So
> >  > can you give us an example how you access the model in the panel
> (with an
> >  > NPE
> >  > throwing component)?
> >  >
> >  > Cheers
> >  > Per
> >  >
> >  > ---------------------------------------------------------------------
> >  > To unsubscribe, e-mail: [EMAIL PROTECTED]
> >  > For additional commands, e-mail: [EMAIL PROTECTED]
> >  >
> >  >
> >
>
>
> --
> Buy Wicket in Action: http://manning.com/dashorst
> Apache Wicket 1.3.3 is released
> Get it now: http://www.apache.org/dyn/closer.cgi/wicket/1.3.3
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>

Reply via email to