[phpBB Debug] PHP Notice: in file /includes/bbcode.php on line 112: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Notice: in file /includes/functions.php on line 3824: Cannot modify header information - headers already sent by (output started at /includes/functions.php:3247)
[phpBB Debug] PHP Notice: in file /includes/functions.php on line 3826: Cannot modify header information - headers already sent by (output started at /includes/functions.php:3247)
[phpBB Debug] PHP Notice: in file /includes/functions.php on line 3827: Cannot modify header information - headers already sent by (output started at /includes/functions.php:3247)
[phpBB Debug] PHP Notice: in file /includes/functions.php on line 3828: Cannot modify header information - headers already sent by (output started at /includes/functions.php:3247)
Next Framework • Ver Tópico - CRUD Mestre-Detalhe com somente um detalhe
Página 2 de 3

Re: CRUD Mestre-Detalhe com somente um detalhe

MensagemEnviado: Seg Ago 01, 2011 10:21 pm
por rogelgarcia
Esse tipo de erro é complicado.. mas o problema nao está nessa funçao.. geralmente tem alguma outra coisa errada na aplicacao...

Re: CRUD Mestre-Detalhe com somente um detalhe

MensagemEnviado: Ter Ago 02, 2011 10:54 am
por jtakata
É...pode ser.
Eu mexi em várias coisas, tais como, a posição da Ação (coloquei como primeira coluna ao invés da última), implementei a auditoria nos registros (quem incluiu, alterou e excluiu e em que datas) entre outras.
Assim que puder, vou fazer os testes começando do Next original.

Re: CRUD Mestre-Detalhe com somente um detalhe

MensagemEnviado: Qua Ago 03, 2011 10:57 am
por jtakata

Re: CRUD Mestre-Detalhe com somente um detalhe

MensagemEnviado: Qua Ago 03, 2011 6:48 pm
por rogelgarcia
É a teoria de sistemas JEE que você faltou a aula, que é o motivo de estar dando erro.. heheheheh

Não se pega nada que veio da requisição com request.getAttribute.. e sim request.getParameter

E os dados devem vir no objeto configurado, no método salvar..

Os dados de outras tabelas não estão na requisição.. estão no banco de dados.. e para pegar os dados do banco de dados.. vc tem que usar o DAO respectivo

Re: CRUD Mestre-Detalhe com somente um detalhe

MensagemEnviado: Qua Ago 03, 2011 7:42 pm
por jtakata
Hummm, justo essa aula rsrsss.
Eu usei o DAO das outras tabelas pra pegar os respectivos registros antes de inserir com o setAttribute, tanto é que apareceram na tela
Eu pensei que, como foram colocados com o setAttribute na ida eu pegaria na volta com o getAttribute.
Bom, o método salvar tem 2 parametros: o WebRequestContext request e o BEAN bean do crud.
Então, se eu entendi o que você disse, os dados das outras tabelas estão no primeiro parâmetro (request).
Assim sendo, eu devo pegar esses dados um a um como string e transforma-los nos respectivos tipos e inseri-los nos respectivos registros e gravar/regravar. É isso?

Re: CRUD Mestre-Detalhe com somente um detalhe

MensagemEnviado: Qui Ago 04, 2011 12:07 am
por rogelgarcia
Se você deu setAttribute na entrada.. tem que passar de alguma forma.. os valores novamente para o servidor.. e pegar ou com request.getParameter, ou através do bean.. (o bean é recomendado)

No caso do bean terá que criar atributos transientes para guardar os valores (e colocar t:property respectivos para repassar os valores para o servidor)

Re: CRUD Mestre-Detalhe com somente um detalhe

MensagemEnviado: Qui Ago 04, 2011 9:53 am
por jtakata
Vamos ver se entendi.
No bean da tabela principal eu coloco os campos das outras tabelas como transientes. Eu copio para esses campos os seus equivalentes das respectivas tabelas. Aí eu nem preciso dar o setAttribute e no jsp eu uso esses campos.
Na volta (método salvar do CrudController), pego esses campos e copio de volta nas tabelas originais.
É isso?
Se for, existe algum recurso genérico no Next que faça essa cópia, do tipo copiaCampos(classeOrigem, classeDestino)? É difícil de fazer?

Re: CRUD Mestre-Detalhe com somente um detalhe

MensagemEnviado: Qui Ago 04, 2011 12:23 pm
por jtakata
Acabei de descobrir que existe um método do BeanUtils (org.apache.commons.beanutils.BeanUtils) chamado copyProperties(objetoDestino, objetoOrigem) que copia campos de uma classe para outra.
Campos que existem na origem mas não no destino são ignorados.

Re: CRUD Mestre-Detalhe com somente um detalhe

MensagemEnviado: Qui Ago 04, 2011 11:44 pm
por rogelgarcia
É por aí mesmo o que vc entendeu...

Mas acho que não precisará desse beanutils não.. mas teria que ver como é sua regra de negócio e os requisitos pra saber.. então fica dificil dizer se precisa ou nao..


Mas é por aí

Re: CRUD Mestre-Detalhe com somente um detalhe

MensagemEnviado: Sex Ago 05, 2011 10:14 am
por jtakata
Se eu usar o BeansUtils vai ser por preguiça mesmo :)
Fiz alguns testes preliminares e parece que funcionou.
Se der algum problema, aí vou fazer um a um.

Muito obrigado e abraços.