Hi, > Here you bind the textField's model to productItem, which is the form's initial model. If you change the latter afterwards, your textField's will still work with the old model.
I have omitted the PropertyModel binding to components. Also I tried using OnModelChanged() and onModelChanging() on a textbox to check what happens while model is updated. My observation is that the model changes only the first time. After first search, these method are not getting called at all ( indicating models are not being updated perhaps). Anyway I am pasting the whole new searchform code below : private class ProductContainer extends WebMarkupContainer { private static final long serialVersionUID = 1L; ProductSearchForm productSearchForm; private class ProductSearchForm extends Form<ProductPageModel> { TextField<String> productName, productId; DropDownChoice<LookupPageModel> productType, productGroup, productStatus; CheckBox showProductSummary; AjaxButton searchProduct, resetProduct; ProductPageModel searchObject, productItemModel; private static final long serialVersionUID = 1L; public ProductSearchForm(String id, ProductPageModel productItem) { super(id); LOG.info("ProductSearchForm : productItem - " + productItem ); List<LookupPageModel> productGroupList = null, productTypesList = null, productStatusList = null; CompoundPropertyModel compoundProductItem = new CompoundPropertyModel(productItem); setDefaultModel(compoundProductItem); productName = new TextField<String>("productName",String.class) { @Override protected void onModelChanged() { // TODO Auto-generated method stub super.onModelChanged(); LOG.info("Model has changed, value is :"+ this.getModelObject()); } @Override protected void onModelChanging() { // TODO Auto-generated method stub super.onModelChanging(); LOG.info("Model is going to change, value is :"+ this.getModelObject()); } }; productName.add(new AttributeAppender("class", Model .of("toggle"))); productName.add( new AjaxFormComponentUpdatingBehavior("onblur") { protected void onUpdate(AjaxRequestTarget target) { LOG.info("onUpdate ProdudtItem : "+ productName.getInput()); } }); productName.add(new AttributeAppender("defaultValue", Model .of(productNameEnterLabel))); productId = new TextField<String>("productId",String.class); productId.add(new AttributeAppender("defaultValue", Model .of(productIdEnterLabel))); productId .add(new AttributeAppender("class", Model.of("toggle"))); productTypesList = lookup.getProductTypes(); productType = new DropDownChoice<LookupPageModel>( "productType",productTypesList, lookupRenderer) { @Override protected String getNullKeyDisplayValue() { return "Select Product Type"; } }; productGroupList = lookup.getProductGroups(); productGroup = new DropDownChoice<LookupPageModel>( "productGroup",productGroupList, lookupRenderer) { @Override protected String getNullKeyDisplayValue() { return "Select Product Group"; } }; add(productGroup); productStatusList = lookup.getStatus(); productStatus = new DropDownChoice<LookupPageModel>( "productStatus", compoundProductItem.bind("fundStatus"), productStatusList, lookupRenderer) { @Override protected String getNullKeyDisplayValue() { return "Select Status"; } }; showProductSummary = new CheckBox("showProductSummary", compoundProductItem.bind("productSummaryRequired") ); searchProduct = new AjaxButton("searchProduct") { private static final long serialVersionUID = 1L; @Override public void onSubmit(AjaxRequestTarget target, Form<?> form) { LOG.info("productName :" + productName.getModelObject()); LOG.info("productName d :" + productName.getDefaultModel()); LOG.info("productName d d:" + productName.getInput()); } }; resetProduct = new AjaxButton("resetProduct") { private static final long serialVersionUID = 1L; @Override public void onSubmit(AjaxRequestTarget target, Form<?> form) { } }; add(productName); add(productId); add(productType); add(productGroup); add(productStatus); add(showProductSummary); add(searchProduct); add(resetProduct); } @Override protected void onSubmit() { searchObject = (ProductPageModel) getModelObject(); LOG.info("onSubmit : productItem :" + searchObject); searchData(); } public void searchData() { if (searchObject != null) { PageParameters pageParameters = new PageParameters(); pageParameters.set("action", "Search"); pageParameters.set("category", "Product"); if (searchObject.getProductType() == null || searchObject.getProductType().getKey() == null) { pageParameters.set("productType", ""); } else { pageParameters.set("productType", searchObject .getProductType().getKey()); } if (searchObject.getProductGroup() == null || searchObject.getProductGroup().getKey() == null) { pageParameters.set("productGroup", ""); } else { pageParameters.set("productGroup", searchObject .getProductGroup().getKey()); } if (searchObject.getFundStatus() == null || searchObject.getFundStatus().getKey() == null) { pageParameters.set("productStatus", ""); } else { pageParameters.set("productStatus", searchObject .getFundStatus().getKey()); } if ("".equalsIgnoreCase(searchObject.getProductName()) || productNameEnterLabel .equalsIgnoreCase(searchObject .getProductName())) { pageParameters.set("productName", ""); } else { pageParameters.set("productName", searchObject.getProductName()); } if ("".equalsIgnoreCase(searchObject.getProductId()) || productIdEnterLabel .equalsIgnoreCase(searchObject .getProductId())) { pageParameters.set("productId", "0"); } else { pageParameters.set("productId", searchObject.getProductId()); } setResponsePage(ProductsListPage.class, pageParameters); } } } I tried to begin a quickstart project also. I am referring http://wicket.sourceforge.net/wicket-quickstart/. However I cant get any latest quickstart projects for wicket 1.6( version I am using). Also I project wont run on eclipse. Can you suggest some place where I can get useful information on quickstart project as well? Thanks, Suvo -- View this message in context: http://apache-wicket.1842946.n4.nabble.com/Compound-Property-Model-to-a-form-is-not-getting-updated-tp4667114p4667141.html Sent from the Users forum 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