The full stack trace would be helpful
Martijn
On 5/16/08, Mathias P.W Nilsson <[EMAIL PROTECTED]> wrote:
>
> I have this page class. When submitting the form via the AjaxButton I get a
> null pointer exception.
> It passes the instanceof in onSubmit but all data is null. I dont get this.
> In the LoadableDetachable model I do new CartItem and when displaying the
> page the first time I see the drop down choice correctly.
>
> public class ItemPage extends RootPage {
> Long itemId;
> Item item;
> WebPage backPage;
>
> public ItemPage(){
> throw new RestartResponseAtInterceptPageException(Base.class);
> }
>
> public ItemPage( PageParameters parameters ){
> this( parameters , null );
> }
>
> public ItemPage( PageParameters parameters, WebPage backPage ){
>
> this.backPage = backPage;
>
> try{
> itemId = new Long( parameters.getString( "ItemId", ""
> ) );
> }catch( NumberFormatException nex ){
> throw new
> RestartResponseAtInterceptPageException(Base.class);
> }
>
> item = getItemDao().getItem( itemId );
> if( item == null )throw new
> RestartResponseAtInterceptPageException(Base.class);
>
> IModel cartItemsModel = new LoadableDetachableModel(){
> private static final long serialVersionUID = 1L;
>
> @Override
> protected Object load() {
> List<SubItem> subItems =
> getItemDao().getSubItems(item);
> List<CartItem> cartItems = new
> LinkedList<CartItem>();
>
> for( SubItem subItem : subItems ){
> if( subItem.getBalance() > 0 ){
> StringBuffer buf = new
> StringBuffer();
> for( Attribute attribute :
> subItem.getAttributes() ){
> buf.append(
> attribute.getData() + " : " );
> }
>
> if( buf.length() > 0 ){
>
> buf.delete(buf.length() - 3, buf.length() );
> }
>
> CartItem item = new
> CartItem();
> item.setAmount( 1 );
> item.setSubItem(subItem);
> item.setAttributes(
> buf.toString() );
> cartItems.add( item );
>
> }
> }
> return cartItems;
> }
>
> };
>
>
> final DropDownChoice choice = new DropDownChoice( "subItems",
> new Model(),
> cartItemsModel, new ChoiceRenderer( "attributes", "subItem.id" ) );
> choice.setNullValid( true );
> Form itemForm = new Form( "itemForm" );
>
> AjaxButton addToCart = new AjaxButton( "addToCart" , itemForm
> ){
> private static final long serialVersionUID = 1L;
>
> @Override
> protected void onSubmit(AjaxRequestTarget target,
> Form form ) {
> target.addComponent( this );
> if( choice.getModelObject() instanceof
> CartItem ){
> System.out.println(
> choice.getModelObject() );
> Cart cart = getCart();
>
> CartItem item = (CartItem) getModel();
> System.out.println(
> item.getAttributes() );
>
> //cart.addCartItem( (CartItem)
> getModelObject() );
> //updateCart();
> }
> }
>
> };
> addToCart.setOutputMarkupId( true );
> itemForm.add( addToCart );
> itemForm.add( choice );
> add( itemForm );
>
>
> Link back = new Link( "backLink" ){
> private static final long serialVersionUID = 1L;
>
> @Override
> public void onClick() {
> setResponsePage( getBackPage() );
> }
>
> };
>
> if( getBackPage() == null ) back.setVisible( false );
> add( back );
>
> }
>
> public WebPage getBackPage() {
> return backPage;
> }
>
>
> }
>
> public class CartItem implements Serializable{
>
> private static final long serialVersionUID = 1L;
> private int amount;
> private SubItem subItem;
> private String attributes;
>
> public int getAmount() {
> return amount;
> }
> public void setAmount(int amount) {
> this.amount = amount;
> }
> public SubItem getSubItem() {
> return subItem;
> }
> public void setSubItem(SubItem subItem) {
> this.subItem = subItem;
> }
> public String getAttributes() {
> return attributes;
> }
> public void setAttributes(String attributes) {
> this.attributes = attributes;
> }
>
>
> }
>
> --
> View this message in context:
> http://www.nabble.com/Null-pointer-I-don%27t-understand-tp17269836p17269836.html
> Sent from the Wicket - User mailing list archive at Nabble.com.
>
>
> ---------------------------------------------------------------------
> 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]