Limpar Formulario Primeface

2,009 views
Skip to first unread message

Gustavo Souza

unread,
Jun 8, 2011, 8:59:51 AM6/8/11
to jav...@googlegroups.com
Ae pessoal,

Objetivo: quando clicar no botao "limpar", este deve zerar os componentes do meu formulario de cadastro.

Problema: só consigo fazer isso usando o <h:commandButton>
Assim:
<h:commandButton value="#{msgs.btClear}">
                    <f:ajax render="@form" listener="#{usuarioMNG.clear}"/>
</h:commandButton>

 public void clear(AjaxBehaviorEvent event) {
        this.id = null;
        this.login = null;
        this.senha = null;
        this.senhaConfirma = null;
        this.nome = null;
        this.cargo = null;
        this.setor = null;
        this.enviaMemo = false;
        this.perfilAdm = false;
    }

Desta forma consigo zerar os componentes.

Pedido
Gostaria de usar o botão do primeface para fazer isso. Alguem sabe como?


--
Att,

Gustavo Souza
53 9163.2838
msn: gustavo...@gmail.com
linux user: #533652
twitter: @gustavocdesouza

Eduardo Nobre

unread,
Jun 8, 2011, 9:19:36 AM6/8/11
to jav...@googlegroups.com
Caro Gustavo,

segue um exemplo:

<p:outputPanel id="panelDados">
<h:panelGrid columns="2">
<h:outputText value="Login"/>
<h:inputText value="#{bean.login}"/>
  <h:outputText value="Senha"/>
<h:inputText value="#{bean.senha}"/>  
</h:panelGrid>
</p:outputPanel>

<p:commandButton action="#{bean.clean}" update="panelDados"/>

public void clean() {
setLogin(null);
setSenha(null);
}



porém vejo que voce tem 7 variaveis, e isto seria fora do padrão.
Sugiro que voce crie um TO e coloque as variaveis.



--
Você recebeu esta mensagem por que é membro do Javasf
http://groups.google.com/group/javasf
 
Conheça também o Java Brazil: http://groups.google.com/group/thejavabrazil



--
Eduardo Nobre

Gustavo Souza

unread,
Jun 8, 2011, 9:04:03 AM6/8/11
to jav...@googlegroups.com
Atualizando:

Deste modo <p:commandButton value="Limpar" type="reset"/> o formulario apenas zera os inputs, e o meu <p:selectBooleanCheckbox> continua com o valor.



Em 8 de junho de 2011 09:59, Gustavo Souza <gustavo...@gmail.com> escreveu:

Filipe Aguilar Santana

unread,
Jun 8, 2011, 9:07:13 AM6/8/11
to jav...@googlegroups.com
Tenta assim:

<p:commandButton value="#{msgs.btClear}" actionListener="#{usuarioMNG.clear}" update="@form" />

public void clear(){
.......

}


T+,
Filipe.

Em 8 de junho de 2011 09:59, Gustavo Souza <gustavo...@gmail.com> escreveu:

Gustavo Souza

unread,
Jun 8, 2011, 9:32:41 AM6/8/11
to jav...@googlegroups.com
@Eduardo:
O que seria TO?
Coloquei seu exemplo e nao deu.

@Filipe
Da maneira que disseste o nao limpa e ainda verifica os campos nulos que devem ter valor, avisando deste erro.

Diego Moura

unread,
Jun 8, 2011, 9:45:26 AM6/8/11
to jav...@googlegroups.com
isso.. faça como o Filipe disse e no seu managed Bean limpe o objeto:

this.objeto = new Objeto()



Em 8 de junho de 2011 10:07, Filipe Aguilar Santana <aguila...@gmail.com> escreveu:

Felipe George

unread,
Jun 8, 2011, 10:14:54 AM6/8/11
to jav...@googlegroups.com
@Gustavo, por default o primefaces ja executa todas as acoes de forma ajax, entao vc nao precisa colocar a tag ajax do jsf2,
segundo: pra vc limpar um formulario, vc deve limpar o objeto deste formulario e atualiza-lo...
faça como o @filipe falou: use o seu commandbuttom, e no seu metodo clean vc instancia novamente o objeto...

Felipe George
ICTUS
ησοῦς Χριστός, Θεοῦ Υιός, Σωτήρ
"Iesus Christos Theou Uios Soter"
"Jesus Cristo, Filho de Deus, Salvador"

Gustavo Souza

unread,
Jun 8, 2011, 11:59:01 AM6/8/11
to jav...@googlegroups.com
fiz..

   public void clear() {
        Usuario usuario = new Usuario();

    
    }

<p:commandButton value="#{msgs.btClear}" actionListener="#{usuarioMNG.clear}" update="@form" />

e continua avisando que o campo Nome é necessário.


Em 8 de junho de 2011 10:45, Diego Moura <diegodem...@gmail.com> escreveu:

Hedley Luna

unread,
Jun 8, 2011, 12:29:30 PM6/8/11
to jav...@googlegroups.com
Eu uso javascript puro pra fazer isso.
Hedley Luna
Oracle Certified Java Programmer 6
Graduando Ciência da Computação - UECE
Laboratório de Computação Científica - LCC - UECE
Instituto Orion de Ciência e Tecnologia

Gustavo Souza

unread,
Jun 8, 2011, 12:55:03 PM6/8/11
to jav...@googlegroups.com
é queria tentar fazer o máximo possivel do projeto utilizando java mesmo

ate entao nao consegui.

;-(

Filipe Aguilar Santana

unread,
Jun 8, 2011, 1:04:48 PM6/8/11
to jav...@googlegroups.com
<p:commandButton value="#{msgs.btClear}" actionListener="#{usuarioMNG.clear}" update="@form"  immediate="true"/>

Em 8 de junho de 2011 14:02, Filipe Aguilar Santana <aguila...@gmail.com> escreveu:
Coloca imediate = true no botão limpar do prime!

:)

Radams Silva

unread,
Jun 8, 2011, 1:11:25 PM6/8/11
to jav...@googlegroups.com
Gustavo, tenta usar o immediate="true"

Caso não tenha sucesso dá uma lida nesse link
http://wiki.apache.org/myfaces/ClearInputComponents

Em 8 de junho de 2011 13:55, Gustavo Souza <gustavo...@gmail.com> escreveu:



--
Att. Radams da Silva Venceslau
Graduado em Análise e Desenvolvimento de Sistemas - IFPB
Pós-Graduando em Engenharia de Software - FA7

http://about.me/radamssilva
Next Target: SCJA
--


Filipe Aguilar Santana

unread,
Jun 8, 2011, 1:02:44 PM6/8/11
to jav...@googlegroups.com
Coloca imediate = true no botão limpar do prime!

:)

Em 8 de junho de 2011 13:55, Gustavo Souza <gustavo...@gmail.com> escreveu:

Gustavo Souza

unread,
Jun 8, 2011, 1:44:08 PM6/8/11
to jav...@googlegroups.com
COloquei


   public void clear() {
        Usuario usuario = new Usuario();

    }

<p:commandButton value="#{msgs.btClear}" actionListener="#{usuarioMNG.clear}" update="@form"  immediate="true"/>

e ele ainda não limpa

;-(

Marcelo Preis Ferreira

unread,
Jun 8, 2011, 2:00:13 PM6/8/11
to jav...@googlegroups.com
Gustavo, tem que dar um new em todos os objetos que estão representados na vew


Marcelo Preis Ferreira

unread,
Jun 8, 2011, 2:00:26 PM6/8/11
to jav...@googlegroups.com
view

Filipe Aguilar Santana

unread,
Jun 8, 2011, 1:55:35 PM6/8/11
to jav...@googlegroups.com
é na vdd vc ta criando um outro usuario assim dentro do metodo...vc tem que dar new no usuario já existente tipo:

public void clear() {
        this.usuario = new Usuario();

    }

Pelo menos não tá pedindo mais o nome não é?

T+,
Filipe.

Jackson Fernandes

unread,
Jun 8, 2011, 2:02:08 PM6/8/11
to jav...@googlegroups.com
Kra faz da seguinte forma 

public void clear() {
        usuario = new Usuario();    
}

<p:commandButton value="#{msgs.btClear}" action="#{usuarioMNG.clear()}" process="@none" update="@form" />



Date: Wed, 8 Jun 2011 14:44:08 -0300
Subject: Re: [javasf] Limpar Formulario Primeface
From: gustavo...@gmail.com
To: jav...@googlegroups.com

Gustavo Souza

unread,
Jun 8, 2011, 2:14:51 PM6/8/11
to jav...@googlegroups.com
Agradeço a todos pelas dicas, em especial ao jackson ao mostrar o process="@none"

vlw


Reply all
Reply to author
Forward
0 new messages