Koci,
could you please get the latest nightly build and see if your problem is resolved. MYFACES-187 should resolve this - if it doesn't, please let me know.
Thanks, Grant.
Koci Martin wrote:
Hi,
I recently switch my project from JSF RI to MyFaces. The are three problem but one is major: when "cancelling" h:form with inputTexts elements with commandButton immediate="true" attr. submittedValue in UIInput is set to submitted values in HTTP request. This is OK but when rendering again - submittedValue in UIInput are used for output in renderer, not values from model binded with value="#{}"!
I found this in RenderUtils (used in HtmlTextRendererBase.renderInput method):
if (component instanceof EditableValueHolder) {
Object submittedValue = ((EditableValueHolder)component).getSubmittedValue();
if (submittedValue != null) { <<<<<---------------------- if submitted value exists it's used for rendering instead of value returned by ValueHolder.getValue()
if (submittedValue instanceof String) {
return (String)submittedValue;
}
else
{
throw new IllegalArgumentException("Expected submitted value of type String for component : " +getPathToComponent(component));
}
}
}
Everything works fine when submitting form with "not immediate" button because submitted values are set to null in UIInput.validate method after validation.
Is that behavior ok or I've missed something?
Thanks
Martin

