Use Case – We have one jsff page and contains some inputtext .On same page there is one Save button and one Cancel button.When user came to the page and try to enter some value in input text field and user click on Cancel button, its not resetting InputText value.When user come on same page again then he can able to see my previously entered value in Input Text though user clicked on cancel.
Normal developer will wrote Action Listener on Cancel Button and wrote below code
input.resetValue() ;
adfFacesContext.addPartialTarget(input);
But its will work (reset values).Setting value in input will not work like
input.setValue(null);
or
input.setValue("");
Few developers will think, why cant we use resetActionListener. It will work for sure,but if you make autoSubmit of inputText to true, it will not work.
Reason- InputText has autoSubmit set to true, which submit the values to model immediately after updating it, resetActionListener resets values only if changes are not populated to model.
For this case use below code.Get current row and do REFRESH_FORGET_NEW_ROWS
Row r1=vo.getCurrentRow();
r1.refresh(oracle.jbo.Row.REFRESH_UNDO_CHANGES | Row.REFRESH_FORGET_NEW_ROWS);
or
r1.refresh(r1.REFRESH_UNDO_CHANGES | r1.REFRESH_WITH_DB_FORGET_CHANGES);
Note : If you don’t need autoSubmit, you can just remove it and use resetActionListener without any bean method to undo current row changes
It will reset binding value of input text.
Happy learning with Vinay Kumar in techartifact..