Olá pessoal. Já procurei em vários lugares a resposta para esse problema mas não consigo resolver. Eu preciso limpar os campos de um formulário, só que não consigo fazer isso. Vou colocar os códigos abaixo.
public void cleanComponentes(UIComponent component){
if(component instanceof EditableValueHolder){
EditableValueHolder evh = (EditableValueHolder) component ;
evh.setSubmittedValue(null);
evh.setValue(null);
evh.setLocalValueSet(false);
evh.setValid(true);
}
if(component.getChildCount() > 0){
for(UIComponent child : component.getChildren()){
cleanComponentes(child);
}
}
}
public void limparCampos(){
FacesContext context = FacesContext.getCurrentInstance();
form = (UIForm) context.getViewRoot().findComponent("formCadastroContaPagar");
cleanComponentes(form);
}
O botão que chama o método limparCampos:
<p:commandButton id="btnAbrirCadastroContaPagar" value="Abrir Cadastro" immediate="true" onclick="PF('cadastrarContaPagar').show();" update=":formCadastroContaPagar" actionListener="#{contaPagarBean.limparCampos}" icon="ui-icon-folder-open"/>
Alguém tem alguma sugestão?