You could try using a PropertyModel instead like this:

Label label = new Label("someLabel", new PropertyModel<String>(DataView.this,"data.id");

PropertyModels take care of possible null pointers.

Kind regards,
Daniel

www.joyn-it.at

On 27.07.2010 10:28, Abid K wrote:
I hope someone can help a newbie who is learning Wicket.

I have the following code which accepts a parameter and then does a database
query to get the 'Data' object. If the user enters the wrong Id the database
query will return null and in this case I want to notify the user the data
could not be found and any other component should be hidden.

But, when I get an null object the code stops working and a null exception
is thrown, any ideas? Or is there a elegant way to do this?

public class DataView extends WebPage {

   private Data data;

   public DataView(PageParameters parameters) {
     long dataId = parameters.getLong("dataId");

     DataDao dataDao = new DataDao();
     data = dataDao.getData( dataId );

     // display message that the data could not be found
     Label dataNotFound = new Label("dataNotFound", "Data could not be
found");
     dataNotFound.setVisible(data == null);

     // otherwise display the panel containing the data
     SomePanel panel = new SomePanel("somePanel");
     panel.setVisible(data != null);

     add(dataNotFound);
     add(panel);
   }

   public class SomePanel extends Panel {
     public SomePanel(String id) {
       super(id);
       // this throws null exception when data is null
       Label label = new Label("someLabel", String.valueOf(data.getId()));
       add(label);
     }
   }
}

Thanks


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to