| Author |
Message |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 08/04/2006 23:08:58
|
andre_guitar7
![[Avatar]](/images/avatar/f033ab37c30201f73f142449d037028d.jpg)
Joined: 21/03/2006 12:03:21
Messages: 259
Location: Curitiba - PR
Offline
|
Quando eu crio um input <mtw:input name="teste">, não perco o valor dele, ou seja, se tiver um outro formulário que tenha o <mtw:input name="teste">, ele vai receber o valor do formulário atrás... só que se eu mudar esse valor no banco ele não muda nesse <mtw:input name="teste"> tbém... sei lá, tenho um formário que atualiza dados... eu atulalizo esses dados, o banco faz a atualição mas a tag não muda de valor... na verdade o output da minha action não muda de valor...
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 09/04/2006 01:29:16
|
saoj
Joined: 01/07/2005 09:59:17
Messages: 2846
Location: Rio de Janeiro, RJ
Offline
|
Explica direito. Não entendi absolutamente nada...
|
Sergio Oliveira
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 09/04/2006 14:25:53
|
Lobo
![[Avatar]](/images/avatar/093f65e080a295f8076b1c5722a46aa2.jpg)
Joined: 23/01/2006 02:17:14
Messages: 841
Location: Fortaleza-CE
Offline
|
Quando eu crio um input <mtw:input name="teste">, não perco o valor dele, ou seja, se tiver um outro formulário que tenha o <mtw:input name="teste">, ele vai receber o valor do formulário atrás
Depois de concluída uma requisição (request) ao servidor os dados se perdem, veja se você está jogando esses valores a nível de sessão (session).
Caso não esteja jogando os valores em sessão (session) então significa que a resposta (response) da sua requisição (request) ainda está disponível.
Não entendi também o que você quiz dizer exatamente, mas existe ainda a possibilidade de você estar fazendo um repasse (foward) e não um redirecionamento (redirect).
No foward você pode repassar valores, no redirect os você poderá zerar esses valores. Na verdade você pode zerar na marra tudo se quizer :]
Você está usando formulários "passo a passo" ? aqueles que o usuário clica em "NEXT", "NEXT","NEXT" ... ?
o_0 ?
Atenciosamente,
Hélio Frota
|
Atenciosamente,
Hélio Frota
Helio Frota
10+ Java Programmer
heliofrota.com
Mentawai Developer |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 10/04/2006 07:01:34
|
andre_guitar7
![[Avatar]](/images/avatar/f033ab37c30201f73f142449d037028d.jpg)
Joined: 21/03/2006 12:03:21
Messages: 259
Location: Curitiba - PR
Offline
|
Lobo wrote:
No foward você pode repassar valores, no redirect os você poderá zerar esses valores. Na verdade você pode zerar na marra tudo se quizer :]
Como?
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 10/04/2006 07:33:19
|
andre_guitar7
![[Avatar]](/images/avatar/f033ab37c30201f73f142449d037028d.jpg)
Joined: 21/03/2006 12:03:21
Messages: 259
Location: Curitiba - PR
Offline
|
saoj wrote:
Explica direito. Não entendi absolutamente nada...
Tenho um objeto chamado Person que pego do banco pelo id do usuário da session... depois seto num output chamado "name", assim:
Code:
Person person = this.personManager.loadById( personSession.getId() );
output.setValue( "name" , person.getName() );
No meu JSP tenho uma formulário que recebe esse "name", assim:
Code:
<mtw:input type="text" name="name" size="25" maxlength="150" />
O usuário vê o nome dele nessa tag e modifica, depois clica num botão gravar... no banco ele grava o nome alterado... só que quando clico no menu da minha aplicação pra alterar o nome novamente, na tag aparece o antigo nome dele, entende? No banco atualizada, na tag continua o conteúdo antigo, não atualizado...
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 10/04/2006 09:06:14
|
Lobo
![[Avatar]](/images/avatar/093f65e080a295f8076b1c5722a46aa2.jpg)
Joined: 23/01/2006 02:17:14
Messages: 841
Location: Fortaleza-CE
Offline
|
depois clica num botão gravar...
Clica num botão gravar, isso deveria ser um request na minha opinião, um "gravado com sucesso" como resposta ou algo do tipo e ao clicar no menu seria outro request que não tem nada haver, ou seja , outra ação que não tem nada haver com o botão gravar.
Com isso o nome que estaria "grudado" nessa sua tag por default era para desaparecer já que o escopo request terminou depois que foi recebido o response da ação de gravar entende.
O nome ao meu ver so não "desgruda" dessa tag caso esteja no escopo session você tem certeza de que não está jogando a nível de session esse dado ?
Nos sistemas que estou fazendo e os que já fiz usando o mentawai eu separo claramente as ações, por exemplo clicar num botão salvar é uma ação que o usuário faz logo eu crio uma action pra isso ou na maioria das vezes crio algo Action.add, Action.delete, Action.update entende.
Faço redirect da seguinte forma , vi no site do mentawai o exemplo e funciona legal, fiz isso algo assim para redirecionar para a página de resultado da enquete no site do TCE/CE para não levar os dados pra página de resultado assim pude manipular para que o gráfico de resultado não se modifique ou seja não ocorra mais votação caso o usuário tecle F5.
Code:
ac = new ActionConfig("/Acao", Acao.class);
ac.addConsequence(Acao.SUCCESS, new Redirect("/algum_lugar.jsp", true));
ac.addConsequence(Acao.ERROR, new Forward("/outro_lugar.jsp.jsp"));
addActionConfig(ac);
Espero ter ajudado em alguma coisa...
Atenciosamente,
Hélio Frota
|
Atenciosamente,
Hélio Frota
Helio Frota
10+ Java Programmer
heliofrota.com
Mentawai Developer |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 10/04/2006 09:08:27
|
saoj
Joined: 01/07/2005 09:59:17
Messages: 2846
Location: Rio de Janeiro, RJ
Offline
|
Vc está modificando no banco e esquecendo de atualizar o seu objeto em memória.
|
Sergio Oliveira
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 10/04/2006 11:41:20
|
andre_guitar7
![[Avatar]](/images/avatar/f033ab37c30201f73f142449d037028d.jpg)
Joined: 21/03/2006 12:03:21
Messages: 259
Location: Curitiba - PR
Offline
|
Lobo wrote:
Code:
ac = new ActionConfig("/Acao", Acao.class);
ac.addConsequence(Acao.SUCCESS, new Redirect("/algum_lugar.jsp", true));
ac.addConsequence(Acao.ERROR, new Forward("/outro_lugar.jsp.jsp"));
addActionConfig(ac);
Já tentei fazer um redirect... mesmo assim ele não perde o valor... o output grava os dados em session?
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 10/04/2006 11:48:36
|
andre_guitar7
![[Avatar]](/images/avatar/f033ab37c30201f73f142449d037028d.jpg)
Joined: 21/03/2006 12:03:21
Messages: 259
Location: Curitiba - PR
Offline
|
saoj wrote:
Vc está modificando no banco e esquecendo de atualizar o seu objeto em memória.
Cada vez que eu clico em "atualizar dados", ele executa isso no action:
Code:
Person person = this.personManager.loadById( personSession.getId() );
output.setValue( "name" , person.getName() );
e vai para o form aonde tem isso:
Code:
<mtw:input type="text" name="name" size="25" maxlength="150" />
Ou seja, antes de exibir o form ele busca a informação, que foi atualizada, do banco e insere no output, toda vez que eu clico em "atualizar dados"...
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 10/04/2006 11:54:35
|
andre_guitar7
![[Avatar]](/images/avatar/f033ab37c30201f73f142449d037028d.jpg)
Joined: 21/03/2006 12:03:21
Messages: 259
Location: Curitiba - PR
Offline
|
Será que tem algo a ver com o Hibernate?
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 10/04/2006 12:03:32
|
saoj
Joined: 01/07/2005 09:59:17
Messages: 2846
Location: Rio de Janeiro, RJ
Offline
|
Na minha cabeça o problema é simples: Vc atualiza no banco mas não dá um REFRESH no seu objeto.
Ou vc não está fazendo isso ou o Hibernate não está fazendo isso.
Uma vez carregado o objeto do banco, deve haver um cache aí, ou seja, se o banco mudar, o objeto não vai saber disso pois está cacheado.
Veja se tem algo haver com isso...
|
Sergio Oliveira
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 10/04/2006 18:56:25
|
andre_guitar7
![[Avatar]](/images/avatar/f033ab37c30201f73f142449d037028d.jpg)
Joined: 21/03/2006 12:03:21
Messages: 259
Location: Curitiba - PR
Offline
|
Será que é pq não to usando o HibernateFilter?
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 10/04/2006 19:06:38
|
saoj
Joined: 01/07/2005 09:59:17
Messages: 2846
Location: Rio de Janeiro, RJ
Offline
|
Tenta forçar um refresh, ou seja, recarregar o objeto de novo do banco via Hibernate.
Eu não manjo de Hiberante para te ajudar, mas isso deve ser possível, principalmente depois que vc utiliza uma session diferente.
Por um acaso vc está usando a mesma session pra tudo ???
Se tiver fazendo isso aí é muito feio...
|
Sergio Oliveira
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 10/04/2006 19:19:26
|
andre_guitar7
![[Avatar]](/images/avatar/f033ab37c30201f73f142449d037028d.jpg)
Joined: 21/03/2006 12:03:21
Messages: 259
Location: Curitiba - PR
Offline
|
andre_guitar7 wrote:
Será que é pq não to usando o HibernateFilter?
Ops, falei errado... será que é pq não usando o HibernateTransaction? O HibernateFilter eu to usando sim...
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 10/04/2006 19:26:39
|
saoj
Joined: 01/07/2005 09:59:17
Messages: 2846
Location: Rio de Janeiro, RJ
Offline
|
Na minha cabeça é o seguinte:
se vc altera o banco na mão e pega o objeto através de uma nova session, a sua mudança vai aparecer ou não.
Se não aparecer significa que o hibernate está cacheando o seu objeto internamente.
Tem que entender isso...
Alguém (vc ou o hibernate) tem que atualizar o objeto se ele mudou...
|
Sergio Oliveira
|
|
|
 |
|
|