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)