Andy created WICKET-5721:
----------------------------

             Summary: Textfield shows old values in getInput()/getValue()
                 Key: WICKET-5721
                 URL: https://issues.apache.org/jira/browse/WICKET-5721
             Project: Wicket
          Issue Type: Bug
          Components: wicket
    Affects Versions: 6.16.0
         Environment: Java 1.6, spring 4.0.6, Eclipse Kepler, Windows 7
            Reporter: Andy
            Priority: Critical




I am having trouble to get new values from the text field.

1. SearchPanel is component of webpages. so every webpage is rendered, 
searchPanel is on left side of the page

2. ProductSearchForm extends Form<ProductPageModel> is a component of 
SearchPanel which has
        productName - TextField
        productId - TextField
        productGroup - DropdownChoice
        productType - DropdownChoice
        productStatus - DropdownChoice
        searchProduct, resetProduct - AjaxButton
        
3. when Default page loads , SearchPanel and ProductSearchForm has default 
values. This page renders as per expected

4. when productName / productId is give for search, based on records next page 
is List or Detail page which has SearccPanel On left side with the previous 
search values provided. This gives accurate results as per expected.

5. when different productName / productId are given as new search parameters in 
the page rendered in step 4 , TextField value does not change. it retains the 
old value even in update method of 
AjaxFormComponentUpdatingBehavior("onchange") of productName/ productId 
TextFields. Need help urgently

Code is as follows :

HTML :

                                <FORM wicket:id="productSearchForm" 
method="post"
                                        name="productSearchForm" action="">
                                        <SPAN class="formField">
                                                <INPUT wicket:id="productName" 
size="30" name="productName" type="text">
                                        </SPAN> 
                                        <SPAN class="formField">
                                                <INPUT wicket:id="productId" 
size="30" name="productId" type="text" > 
                                        </SPAN>
                                        <SPAN class="formField">
                                                <SELECT wicket:id="productType" 
class="pulldowns" size="1" name="productType">
                                                </SELECT>
                                        </SPAN>
                                        <SPAN class="formField">
                                                <SELECT 
wicket:id="productGroup" class="pulldowns" size="1" name="productGroup">
                                                </SELECT>
                                        </SPAN>
                                        
                                        <SPAN class="formField">
                                                 <SELECT 
wicket:id="productStatus" class="pulldowns" size="1" name="statusCode">
                                                </SELECT> 
                                        </SPAN>
                                        <INPUT wicket:id="searchProduct" 
class="btnz" type="submit" value="SEARCH" name="btnFindFund" > 
                                        <INPUT wicket:id="resetProduct" 
class="btnz" type="reset" value="RESET" name="btnResetFund" >
                                </FORM>
                                
JAVA :
private class ProductSearchForm extends Form<ProductPageModel> {
                private static final long serialVersionUID = 1L;
                        
                TextField<String> productName, productId;
                DropDownChoice<LookupPageModel> productType, productGroup,
                                        productStatus;
                CheckBox showProductSummary;
                        
                AjaxButton searchProduct, resetProduct;
                ProductPageModel searchObject;

                public ProductSearchForm(String id, ProductPageModel 
productItem) {
                        
                        super(id , new 
CompoundPropertyModel<ProductPageModel>(productItem));
                        productName = new TextField<String>("productName", 
String.class);
                                
                                
                        productName.add(new AjaxFormComponentUpdatingBehavior(
                                                "onchange"){

                        private static final long serialVersionUID = 1L;

                        @Override
                        protected void onUpdate(AjaxRequestTarget target) {
                                                
                                LOG.info("product Name = " + 
productName.getValue() );
                                                
                                }
                                        
                        });
                                
                        productId = new TextField<String>("productId", 
String.class);
                        productId.add(new AjaxFormComponentUpdatingBehavior(
                                                "onchange"){

                        private static final long serialVersionUID = 1L;

                        @Override
                        protected void onUpdate(AjaxRequestTarget target) {
                                                
                                LOG.info("product id = " + productId.getValue() 
);
                                                
                                }
                                        
                        });
                        productType = new DropDownChoice<LookupPageModel>(
                                                "productType", 
productTypesList, lookupRenderer) {

                                private static final long serialVersionUID = 1L;

                                @Override
                                protected String getNullKeyDisplayValue() {
                                                return "Select Product Type";
                                        }
                                };

                        productGroup = new DropDownChoice<LookupPageModel>(
                                                "productGroup", 
productGroupList, lookupRenderer) {

                                private static final long serialVersionUID = 1L;

                                @Override
                                protected String getNullKeyDisplayValue() {
                                                return "Select Product Group";
                                        }
                                };

                        productStatus = new DropDownChoice<LookupPageModel>(
                                        "productStatus" ,productStatusList, 
lookupRenderer) {

                                private static final long serialVersionUID = 1L;

                                @Override
                                protected String getNullKeyDisplayValue() {
                                                return "Select Status";
                                }
                        };


                        searchProduct = new AjaxButton("searchProduct") {

                                private static final long serialVersionUID = 1L;

                                @Override
                                public void onSubmit(AjaxRequestTarget target, 
Form<?> form) {

                                }

                        };

                        resetProduct = new AjaxButton("resetProduct") {

                                private static final long serialVersionUID = 1L;

                                @Override
                                public void onSubmit(AjaxRequestTarget target, 
Form<?> form) {


                                }

                                };
                        resetProduct.setDefaultFormProcessing(false);

                        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("search opbject = " + searchObject );

                        searchData(searchObject);
                }
                        
                public void searchData(ProductPageModel searchObject) {

                        //formulate search data 

                }

        }
                        
}




--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to