limpar campos no richfaces

263 views
Skip to first unread message

Felipe George

unread,
Nov 25, 2010, 8:20:42 AM11/25/10
to jav...@googlegroups.com
pessoal, eu sou novo com richfaces e estou com um probleminha...

eu fiz uma aplicacao de Cadastro [Nome e Endereço] e tem um botao [Salvar] que possui uma requisição ajax.

eu digito o nome no campo [Nome] e o endereço no campo [Endereço], e ao clicar em [Salvar] esses dados sao visualizados no grid...
só que os campos nao sao limpados, continua com os dados q eu digitei...

vcs sabem me informar como posso resolver:???

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

Sérgio Fantin

unread,
Nov 25, 2010, 8:33:16 AM11/25/10
to jav...@googlegroups.com
Depois de salvar você pode dar um nova referência pro objeto, por ex:

public void salvar(Pessoa pessoa){

    // rotina que salva...

    pessoa = new Pessoa();
}

e no botão que salva você dá um reRender nos campos que deverão ser zerados.

Abraços...

2010/11/25 Felipe George <felipeg...@gmail.com>
--
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



--
Sérgio Fantin
http://serjaum.wordpress.com

Odisley

unread,
Nov 25, 2010, 10:34:31 AM11/25/10
to jav...@googlegroups.com
Não é crítica, apenas constatação é novato mesmo!
Bem vindo a comunidade!!!
<--_|--/Odisley Soares Silva\--|_-->


Felipe George

unread,
Nov 25, 2010, 8:37:35 AM11/25/10
to jav...@googlegroups.com
entao,
no botao salvar ja faz uma nova instancia de pessoa...
so nao faz o reRender...

como eu devo fazer esse reRender nesses campos???

Felipe George

unread,
Nov 25, 2010, 10:39:28 AM11/25/10
to jav...@googlegroups.com
rsrsrs

Felipe George

unread,
Nov 25, 2010, 10:42:03 AM11/25/10
to jav...@googlegroups.com
ow entao,
eu coloquei o reRenderer="formCadastro, formVisual"

tipo, ele vai atualizar o formulario da grid [formVisual] e o formulario do cadastro[formCadastro]

eh isso mesmo...?

Kirmaier Andrade

unread,
Nov 25, 2010, 11:10:46 AM11/25/10
to jav...@googlegroups.com
Aproveitando o gancho

Se eu te falar que estou com um problema semelhante ao seu =/

e não sei se é felizmente ou infelizmente não sou novato, principalmente com JSF.

meu problema é com um modalPanel.

Os campos INPUT não reRenderizam o valor, apenas os OUTPUT.

Ex.: Tela de Edição, o 1º registro aparece okay, do 2º em diante só aparece os valores do 1º registro. Se eu tirar o INPUT e colocar OUTPUT os valores estão corretos..

Nunca vi isso.. =/

* Já usei todos reRender, ajaxSingle, process, troquei o modalPanel do Richfaces pro PrimeFaces, os get e set estão sempre com os valores corretos, do 1º, 2º, 3º registros... enfim, não sei oq acontece =/
** O Bean estou usando Scope.SESSION alterei ele para outros e nada.

Se tiverem uma luz, ficarei deveras agradecido.

Sem mais --

2010/11/25 Felipe George <felipeg...@gmail.com>



--
[]'s,
Kirmaier Barbosa de Andrade
http://kirmaier.blogspot.com/

Marcelo Preis Ferreira

unread,
Nov 25, 2010, 11:31:32 AM11/25/10
to jav...@googlegroups.com
Também passo por isso, de vez enquando....
aposto... chamadas ajax: em nivel da arvore do DOM.... onde ele não acha tal Tag...
ai não atualiza....
Usem o FireBug... ele ajuda muito nessas horas....
veja o Id da Tag Dom que vc quer atualizar existe no objeto DOM...

Use conteiner objetos conteiner ajudar bastante nisso...

Kirmaier Andrade

unread,
Nov 25, 2010, 11:38:21 AM11/25/10
to jav...@googlegroups.com
Me explica o porque não reRenderizar campos INPUT e campos OUTPUT funcionam ???????

o.0

2010/11/25 Marcelo Preis Ferreira <preis...@gmail.com>

--
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

Marcelo Preis Ferreira

unread,
Nov 25, 2010, 11:48:23 AM11/25/10
to jav...@googlegroups.com
É realmente complicou...
Andrade vou tentar te ajudar com três perguntas,
São do mesmo FrameWork o que esta questionando?
Os que não estão atualizarem fazem parte do mesmo conjunto de Tags DOM a serem atualizadas ?
O id do tag são iguais?
pode ser que o framework produza um id, diferente do que tenta atualizar

Não me interpretem mal... só estou fazendo essas perguntas para ajudar tentar resolver o problemas de vocês...
e aprendermos junto...

Kirmaier Andrade

unread,
Nov 25, 2010, 12:01:43 PM11/25/10
to jav...@googlegroups.com
@Marcelo,

Tranquilo cara, esquenta não. Vamos lá:

Antes de responder suas perguntas vou explicar o contexto:
Tenho 1 tabela principal onde o usuário seleciona o checkBox para editar um ou N registros, OKAY. Ele seleciona e clica no editar, que pega TODOS os valores corretos.
Os registros são dinâmicos, hora tenho 2 campos, outrora 200 campos.
Quando o modalPanel é aberto e está sendo montando, eu vou no get do HashMap que uso pra essa finalidade e os VALORES continuam CORRETOS, TODOS.


São do mesmo FrameWork o que esta questionando?
Sim. Meu problema ocorre no modalPanel do RichFaces. Alterei o modal para o do PrimeFaces para testar, e mesmo assim meu problema continua.


Os que não estão atualizarem fazem parte do mesmo conjunto de Tags DOM a serem atualizadas ?
Dentro do modal usei o a4j:outputPanel ajaxRendered="true" + a4j:form.
A 1ª vez que o modal é aberto os campos vêem preenchidos corretamente.
A 2ª vez em diante ele sempre traz os valores do 1º registro.


O id do tag são iguais?
Como disse-lhe, os campos são dinâmicos, hora 2 campos outrora 200 campos. Os id's dos inputs são por conta do richfaces mesmo.

* Detalhe:
No cenário descrito acima, se no lugar do <h:inputText /> eu usar <h:outputText /> os VALORES são reRenderizados corretamente.

** Fiz o teste
coloquei o campo <h:inputText> + <h:outputText /> e estranhamente somente o input vem com o valor errado. =/

*** Faço uso constante do firebug para essas questões de ID, e todos estão corretos.
Meu problema é unica e exclusivamente campos INPUT, já coloquei N outros tipos e tudo reRenderiza.


=/

2010/11/25 Marcelo Preis Ferreira <preis...@gmail.com>
É realmente complicou...

--
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

Marcelo Preis Ferreira

unread,
Nov 25, 2010, 12:23:31 PM11/25/10
to jav...@googlegroups.com
Hum entendi em si seu problema...
para eliminar um problema... crie uma situação onde
Coloque <h:outputText> e <h:inputText> com o mesmo valor mesmo nível no DOM, no mesmo instante e mesma propriedade manageBean,
o resultado é o que você esta falando?

se sim...
no PrimeFaces, eu uso um único, <h:form> para todo  o projeto..... só vou reiderizando partes do template...
tente eliminar esse <h:form>

não sei te ajuda ou não eu tenho um problema semelhante aqui.... resolvido com POG...
que é o seguinte meu manges(Bean) extendes todos de uma mesma classe.... e quando trabalho com vários manages, ele usa as mesmas variáveis da class mãe (superclass)....
enfim ....

Kirmaier Andrade

unread,
Nov 25, 2010, 12:34:32 PM11/25/10
to jav...@googlegroups.com
@Marcelo,


Coloque <h:outputText> e <h:inputText> com o mesmo valor mesmo nível no DOM, no mesmo instante e mesma propriedade manageBean,
o resultado é o que você esta falando?
Exatamente isso que estou lhe dizendo! Dentro do dataTable, column [ input e output ] lado a lado, e o input com valor INCORRETO e output CORRETO. =/

o modalPanel requer uma <h:form /> pra ele, não posso fugir disto.

Dentro do modalPanel, já retirei o a4j:outputPanel + a4j:form. Coloquei a4j:region, depois voltei com o a4j:form, enfim, fiz milhoes de possibilidades, até o ponto que está, eu larguei o problema =/

ALLguém tiver outra luz ai, ficarei grato.

Obrigado pela atenção.

2010/11/25 Marcelo Preis Ferreira <preis...@gmail.com>
Hum entendi em si seu problema...

--
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

Rafael Ponte

unread,
Nov 25, 2010, 12:34:45 PM11/25/10
to jav...@googlegroups.com
Kirmaier,

Isso é comum acontecer quando se trabalha com a mesma árvore de componentes, e como você está se utilizando de Ajax do Richfaces é quase certo estar trabalhando com a mesma view-root.

Por mais que você limpe o managed bean a árvore de componentes pode ainda continuar em um estado "sujo". Logo é necessário limpa-la também. Nesse post sobre Jsf+Ajax tem um maneira simples de fazer a limpeza ou você também pode usar essa outra abordagem, que em termos de performance acaba sendo melhor (procure pelo método cleanSubmittedValues()). Você pode ver um exemplo aqui.

Eu tenho um post em draft que está saindo essa semana sobre o assunto, bem, ao menos é minha pretensão :-)

2010/11/25 Kirmaier Andrade <kirm...@gmail.com>



--
Rafael Ponte
http://www.rponte.com.br

Kirmaier Andrade

unread,
Nov 25, 2010, 3:19:41 PM11/25/10
to jav...@googlegroups.com
@Rafael,

Obrigado pelas dicas que foram úteis pacas. Usando a idéia do UIComponent.getChildren().clear(); ele realmente limpa tudo, meu problema dos input's acabaram. \o/

Tive uns erros aqui no inicio da implementação desta idéia, mas foi até pegar a maneira correta de trabalho para aplica-lá ao meu contexto.

Hoje o mundo tem 1 desenvolvedor feliz..rsss

Obrigado a todos. ;D

2010/11/25 Rafael Ponte <rpo...@gmail.com>
Reply all
Reply to author
Forward
0 new messages