Botao limpar nao funciona

4 respostas
Juh_Petri

Boa tarde, estou desenvolvendo um projeto, e estou tendo problemas ao limpar os campos.
O problema: faço uma busca de usuario, ele me retorno o name e o username do msm, a password e a passwordconfrmation ficam editaveis, porem se eu der um salvar sem preencher os password e a passwordconfrmation ele me retorna uma msg dizendo que estas devem ser preenchidas, ate aki blz, agora se eu clicar no botao limpar, ele so limpa o username, que na hora q eu retorno ele deixo desabilitado, os outros campos que estao habilitados nao limpam.

usuario.xhtml
<h:form prependId="false">  
            <p:outputPanel id="formPanel" >  
                <p:outputPanel rendered="#{!searchAction.rendered}">  
                    <p:tabView id="cadastroUsuarioCentralTabView" effect="opacity" effectDuration="fast">  
  
                        <p:tab title="Manutenção">  
  
                            <h:panelGrid columns="3" id="usuarioGrid">  
                                <h:outputLabel for="name" value="#{i18n['field.name']}" />  
                                <p:inputText id="name" required="true" size="50" maxlength="50" value="#{cadastroUsuarioCentralAction.vo.name}"/>  
                                <p:message for="name" display=">>>" />                                 
                                  
                                <h:outputLabel for="username" value="#{i18n['field.username']}" />  
                                <p:inputText id="username" required="true" size="21" maxlength="21" value="#{cadastroUsuarioCentralAction.vo.username}" disabled="#{cadastroUsuarioCentralAction.vo.id != null}" />  
                                <p:message for="username" />  
  
                                <h:outputLabel for="password" value="#{i18n['field.password']}" />  
                                <p:password id="password" required="true" size="21" maxlength="21" value="#{cadastroUsuarioCentralAction.vo.password}" feedback="true" />  
                                <p:message for="password" />  
  
                                <h:outputLabel for="passwordConfirmation" value="#{i18n['field.passwordConfirmation']}" />  
                                <p:password id="passwordConfirmation" required="true" size="21" maxlength="21" value="#{cadastroUsuarioCentralAction.vo.passwordConfirmation}" feedback="false" />  
                                <p:message for="passwordConfirmation" />  
  
                                <h:outputLabel for="enabled" value="Status" rendered="#{cadastroUsuarioCentralAction.ativarRendered}" />  
                                <p:selectBooleanCheckbox id="enabled" value="#{cadastroUsuarioCentralAction.vo.enabled}" rendered="#{usuarioCentralAction.ativarRendered}">  
                                    <h:outputLabel for="enabled" value="Ativo" />  
                                </p:selectBooleanCheckbox>      
                                <p:message for="enabled" />  
  
                            </h:panelGrid>  
  
                            <br/>  
  
                            &lt;p:toolbar&gt;  
                                &lt;p:toolbarGroup align="right"&gt;  
                                    &lt;p:commandButton value="#{i18n['button.save']}" action="#{cadastroUsuarioCentralAction.salvar}" update="usuarioGrid,growl" /&gt;  
                                    &lt;p:commandButton value="#{i18n['button.clean']}" action="#{cadastroUsuarioCentralAction.limpar}" update="usuarioGrid" process="@this"/&gt;  
                                    &lt;p:commandButton value="#{i18n['button.back']}" action="pages_principal" actionListener="#{cadastroUsuarioCentralAction.limpar}" ajax="false" immediate="true"/&gt;  
                                &lt;/p:toolbarGroup&gt;  
                            &lt;/p:toolbar&gt;  
  
                        &lt;/p:tab&gt;  
  
                    &lt;/p:tabView&gt;  
  
                &lt;/p:outputPanel&gt;  
            &lt;/p:outputPanel&gt;  
        &lt;/h:form&gt;
usuarioAction.java
public void limpar() {  
            vo = new CadastroUsuarioCentralVo();  
          }

4 Respostas

Guilherme_Gomes

Dá uma olhada no log da aplicação. Qnd vc apertar limpar aparece algum erro lá? É possível que vc tenha que colocar um immediate=“true” no botao.

Juh_Petri

então Guilherme, desta forma que eu setei o action do commandButton ele nao funcionava nem com o immediate=“true”

&lt;p:commandButton value="#{i18n['button.clean']}" action="#{cadastroUsuarioCentralAction.limpar}" update="usuarioGrid" process="@this"/&gt;

ai o que eu fiz, pedi para o action dar um refresh na tela, e no actionListener eu passei o comando para limpar usando o immediate=“true”

&lt;p:commandButton value="#{i18n['button.clean']}" action="pages_cadastroUsuario" actionListener="#{cadastroUsuarioCentralAction.limpar}" ajax="false" immediate="true"/&gt;

foi a unica maneira que eu consegui fazer, eu olhei o log do tomcat mas ele nao me mostrava nada.

Guilherme_Gomes

Eu olhei no showcase do primefaces e eles usam o actionListener mesmo. Mas via ajax.
Acho que vale o teste de tirar o process="@this" e colocar o immediate=“true”

E tem mais uma coisa, o seu método limpar, apesar de ser usado em ajax, tem que retornar String. Coloca pra retornar null e testa de novo.

Juh_Petri

seu eu tirar deixar o ajax ele nao funciona, agora quando desabilito o ajax ele limpa todos os campos

Criado 7 de outubro de 2011
Ultima resposta 7 de out. de 2011
Respostas 4
Participantes 2