Problema propriedade update(Primefaces 3 + Facelets + IDs aninhados)  XML
Índice dos Fóruns » Desenvolvimento Web
Autor Mensagem
giulianocosta
JavaEvangelist

Membro desde: 11/08/2003 09:59:28
Mensagens: 442
Offline

Alguém aqui está conseguindo trabalhar com PF3 + Facelets?

Usando updates parciais com a propriedade "update" dos comandos ajax, quando se tem um ID aninhado do tipo "panelGrid:jdt_57:inputTextNome" o comando update não funciona se você não colocar todo o id do componente que deseja atualizar.

No PF2 eu utilizava normalmente passando ":nomeDoComponente" (dois pontos + nome do componente), agora trabalhando com facelets (Templates, Components e Decorators) tem se tornado um inferno fazer os updates, pois estou tendo que ir no código fonte gerado para pegar o ID completo do componente que desejo atualizar...


Alguém sabe o motivo desse problema?

Giuliano Costa
Programador
[Email]
jakefrog
GUJ Expert
[Avatar]

Membro desde: 22/01/2007 22:00:53
Mensagens: 4191
Offline

Coloque a propriedade prependId=false no seu form (ou em todos) e tente novamente.

Pode ser isso.

Meu blog sobre java uaiHebert.com
Conceitos OO - Diga, não pergunte!, Lei de Demeter
TDD Primeiros Passos, JUnit com HSQLDB, JPA e Hibernate, Cobertura de testes com JUnit Ant e Emma, Cobrindo seus testes com Cobertura, JUnit, HSQLDB, JPA
Código Limpo: Partes: 01,02,03,04,05
Web/JSF - Criando um WebServer, Tratando Exceções, Autenticação de Usuários (Filter/Servlet), JSF - Hello World, AutoComplete, JSF: Converter e Bean Auto Complete, Validação de Login de Usuário com JSF e JAAS, JSF Exibindo Objeto e Mensagens após Redirect, JSF Exemplos Simples com Ajax, JSF Parametros por Get Request RESTFullAplicação Web Completa JSF EJB JPA JAAS, Lazy JSF Datatable Pagination (Primefaces)
Design Pattern - Strategy, Design Pattern - Observer (Parte 01), Design Pattern - Observer (Parte 02)
Business (JPA)- Hibernate 3 com JPA 2, Create schema script: Ant, Hibernate 3 e JPA 2, TableGenerator Chave Primária Simples, SequenceGenerator,Chave Primária Composta, Mapeando Datas (Date) e Enum, Mapeando Duas Tabelas em uma Classe, @OneToOne Unidirecional e Bidirecional, @OneToMany e @ManyToOne Unidirecional e Bidirecional, @ManyToMany Unidirecional e Bidirecional, Ordernando listas e utilizando Map como atributo mapeado,Uma tabela por herança, JPA Uma Classe por Sub-Classe, JPA Consultas e Dicas, [HOT]Quatro soluções para LazyInitializationException[HOT]

SCJP(1.6 - Ingles - 29/12/2009)
SCWCD(1.5 - Ingles - 30/06/2010)

Vamos em frente que atrás vem gente!
giulianocosta
JavaEvangelist

Membro desde: 11/08/2003 09:59:28
Mensagens: 442
Offline

Tentei isso também. Não funfou.


Estou pensando seriamente em continuar na versão 2...

Giuliano Costa
Programador
[Email]
jakefrog
GUJ Expert
[Avatar]

Membro desde: 22/01/2007 22:00:53
Mensagens: 4191
Offline

Então pode ser o id do seu panelGrid que ta te pegando.

Oq é o componente jdt_57?

Meu blog sobre java uaiHebert.com
Conceitos OO - Diga, não pergunte!, Lei de Demeter
TDD Primeiros Passos, JUnit com HSQLDB, JPA e Hibernate, Cobertura de testes com JUnit Ant e Emma, Cobrindo seus testes com Cobertura, JUnit, HSQLDB, JPA
Código Limpo: Partes: 01,02,03,04,05
Web/JSF - Criando um WebServer, Tratando Exceções, Autenticação de Usuários (Filter/Servlet), JSF - Hello World, AutoComplete, JSF: Converter e Bean Auto Complete, Validação de Login de Usuário com JSF e JAAS, JSF Exibindo Objeto e Mensagens após Redirect, JSF Exemplos Simples com Ajax, JSF Parametros por Get Request RESTFullAplicação Web Completa JSF EJB JPA JAAS, Lazy JSF Datatable Pagination (Primefaces)
Design Pattern - Strategy, Design Pattern - Observer (Parte 01), Design Pattern - Observer (Parte 02)
Business (JPA)- Hibernate 3 com JPA 2, Create schema script: Ant, Hibernate 3 e JPA 2, TableGenerator Chave Primária Simples, SequenceGenerator,Chave Primária Composta, Mapeando Datas (Date) e Enum, Mapeando Duas Tabelas em uma Classe, @OneToOne Unidirecional e Bidirecional, @OneToMany e @ManyToOne Unidirecional e Bidirecional, @ManyToMany Unidirecional e Bidirecional, Ordernando listas e utilizando Map como atributo mapeado,Uma tabela por herança, JPA Uma Classe por Sub-Classe, JPA Consultas e Dicas, [HOT]Quatro soluções para LazyInitializationException[HOT]

SCJP(1.6 - Ingles - 29/12/2009)
SCWCD(1.5 - Ingles - 30/06/2010)

Vamos em frente que atrás vem gente!
giulianocosta
JavaEvangelist

Membro desde: 11/08/2003 09:59:28
Mensagens: 442
Offline

Na real, minhas telas são um pouco complexas em termos de componentes. Ainda mais com os templates e os decorators.

esse id ai "jdt_57" é um id que o render cria pra formar toda árvore de componentes. Ele faz isso pra evitar colisão de IDs. É normal que isso aconteça, o problema todo é que eu não deveria necessitar conhecer todo id do componente para dar um "refresh" nele...

Eu ainda voto num bug do PF ou em alguma coisa que estou esquecendo...

Giuliano Costa
Programador
[Email]
erasmo_tec
JavaChild
[Avatar]

Membro desde: 25/07/2008 15:08:21
Mensagens: 105
Offline

Caro Colega giulianocosta estou numa tarefa de migração do Prime Faces para a versão 3.0.1 e observei que realmente essa questão do update não está funcionando corretamente sem colocar todo o id do componente, mesmo colocando como prependId="false" o update que antes funcionava deixou de funcionar.

Você conseguiu resolver esse problema ou continua com a versão 2 do Prime?
[Email] [MSN] [ICQ]
giulianocosta
JavaEvangelist

Membro desde: 11/08/2003 09:59:28
Mensagens: 442
Offline

erasmo_tec wrote:Caro Colega giulianocosta estou numa tarefa de migração do Prime Faces para a versão 3.0.1 e observei que realmente essa questão do update não está funcionando corretamente sem colocar todo o id do componente, mesmo colocando como prependId="false" o update que antes funcionava deixou de funcionar.

Você conseguiu resolver esse problema ou continua com a versão 2 do Prime?


Cara, foi um parto mas consegui fazer funcionar tudo que tinha no meu outro sistema. Mas tive que usar os IDs compostos para fazer funcionar. Não consegui de outra forma.

Outro problema que eu tinha é que possuo alguns "componentes" do facelets, estes caras colocavam um ID aleatório nos meus componentes finais(inputs, texts, selects, etc). A maneira que eu resolvi foi colocar ID no componente inteiro e solicitar o update dele ao invés de fazer update nos componentes que ele monta. Não sei se consegui ser claro neste ponto.

Qualquer dúvida estamos ai.

This message was edited 1 time. Last update was at 18/01/2012 15:37:32


Giuliano Costa
Programador
[Email]
erasmo_tec
JavaChild
[Avatar]

Membro desde: 25/07/2008 15:08:21
Mensagens: 105
Offline

Sim, foi sim.

O que estou fazendo no momento é colocar os devidos ids nos componentes que faltavam e passar para o update o id composto mesmo.

Que maravilha, ainda bem que o sistema não é tão grande! sair criando ids e alterando seus updates é chato pra burro.
[Email] [MSN] [ICQ]
 
Índice dos Fóruns » Desenvolvimento Web
Ir para:   
Powered by JForum 2.1.8 © JForum Team