[Logo] Neo Framework Forum
  [Search] Busca   [Recent Topics] Tópicos Recentes   [Members]  Lista de Usuários   [Groups] De volta para a página principal 
[Register] Registrar / 
[Login] Entrar 
Duvida numa tela diferente  XML
Índice dos Fóruns -> Dúvidas Ir para a página: Anterior  1, 2
Autor Mensagem
pedro.goncalves
Equipe
[Avatar]
Membro desde: 17/04/2007 16:12:20
Mensagens: 539
Localização: Belo Horizonte - MG
Offline

Troca para isso aqui entao:

Code:
 <n:submit action="definirHome" />Texto aqui</n:submit>
 

Pedro Gonçalves
http://pedrogoncalves.com.br
[Email] [WWW] [MSN]
robmsjr
MultiAction

Membro desde: 26/06/2007 19:30:49
Mensagens: 88
Offline

rogel.garcia wrote:
Coloque um Integer no seu bean para setar o número de chamadas.

Crie um n:submit para enviar os dados para o servidor..

<n:submit action="montarLista"/>

Crie um método montarLista no controller para receber o bean.. Nesse método vc adiciona as Chamadas a lista do bean e redireciona para a página para o usuário escolher as chamadas

Na outra página utilize um c:forEach para criar vários inputs de chamada


dentro do forEach vc coloca
<c:forEach .... varStatus="status">
<t:property name="chamadas[${status.index}]" />
</c:forEach>

O JSP vai ficar mais ou menos assim:

<select name="chamadas[0].tipochamada">.....</select>
<select name="chamadas[1].tipochamada">.....</select>
<select name="chamadas[2].tipochamada">.....</select>
<select name="chamadas[3].tipochamada">.....</select>
<select name="chamadas[4].tipochamada">.....</select>
<select name="chamadas[5].tipochamada">.....</select>

E isso pode ser mapeado para o bean novamente... 


Consegui fazer até ai funcionando beleza, agora qnd eu submeter está tela tenho que capturar a cada num request normal?, ou deveria vim carregado no meu bean home?
pedro.goncalves
Equipe
[Avatar]
Membro desde: 17/04/2007 16:12:20
Mensagens: 539
Localização: Belo Horizonte - MG
Offline

Tipo.. dentro do seu bean.. tem a lista :

class bean{
list<bean> lista;
propriedade prop;
}

quando vc por no seu jsp:

lista[0].propriedade
lista[1].propriedade
lista[2].propriedade
lista[3].propriedade
lista[4].propriedade

ele ja preenche automaticamente a lista..

ai no seu controoler vc põe

public ModelAndView action(WebRequestContext request, Bean bean){


entendeu?

Pedro Gonçalves
http://pedrogoncalves.com.br
[Email] [WWW] [MSN]
robmsjr
MultiAction

Membro desde: 26/06/2007 19:30:49
Mensagens: 88
Offline

Saquei, eu tinha testado e não tinha funcionado mas foi por um erro meu.

uma outra duvida:

Eu mapei minha lista assim:
Code:
 @OneToMany(mappedBy="home")
 	public List<Chamada> getChamadas() {
 		return chamadas;
 	}
 


Ela é atualizada sozinha no homeService.saveOrUpdate(home) ?

Valeu
pedro.goncalves
Equipe
[Avatar]
Membro desde: 17/04/2007 16:12:20
Mensagens: 539
Localização: Belo Horizonte - MG
Offline

Não.. para isso vc precisa usar o saveOrUpdate strategy...

ou iterar sobre a lista e ir dando update...

O save or update strategy usa assim:

Code:
 Bean bean = ...;
 new SaveOrUpdateStrategy(hibernateTemplate, bean)
         .saveEntity()
         .saveOrUpdateManaged("lista")
         .execute();
 


nesse caso, ele salva a entidade e a lista que ta dentro dela..

Entendeu?

Pedro Gonçalves
http://pedrogoncalves.com.br
[Email] [WWW] [MSN]
robmsjr
MultiAction

Membro desde: 26/06/2007 19:30:49
Mensagens: 88
Offline

Em que classe/metodo eu crio esse saveOrUpdateStrategy?

E somente mapeado ele tenta inserir a lista no banco agora não preeche o idhome no bean chamada...segue o código

chamada:
Code:
 @JoinColumn(name="idhome")
 	@ManyToOne(targetEntity=org.neo.exemplo.bean.Home.class)
 	public Home getHome() {
 		return home;
 	}
 


home:
Code:
 @OneToMany(cascade = {CascadeType.ALL},mappedBy="home")
 	public List<Chamada> getChamadas() {
 		return chamadas;
 	}
 


erro:
Code:
 2007-07-11 16:27:22,964 [http-8080-Processor24] ERROR org.hibernate.util.JDBCExceptionReporter - Entrada em lote 0 insert into Chamada (idhome, idconteudo, idtipochamada, idchamada) values (NULL, NULL, 1, 1) foi abortada. Chame getNextException para ver a causa.
 2007-07-11 16:27:22,964 [http-8080-Processor24] WARN org.hibernate.util.JDBCExceptionReporter - SQL Error: 0, SQLState: 23502
 2007-07-11 16:27:22,964 [http-8080-Processor24] ERROR org.hibernate.util.JDBCExceptionReporter - ERROR: null value in column "idhome" violates not-null constraint
 2007-07-11 16:27:22,982 [http-8080-Processor24] ERROR org.hibernate.event.def.AbstractFlushingEventListener - Could not synchronize database state with session
 


esse erro é por causa do saveOrUpdateStrategy?
rogel.garcia
Xiita

Membro desde: 17/04/2007 16:35:03
Mensagens: 275
Offline

Para mapear manytoone vc precisa disso aqui

Code:
 @JoinColumn(name="idhome")
 @ManyToOne(fetch=FetchType.LAZY)
 public Home getHome() {
     return home;
 }
 


O FetchType.LAZY é opcional, mas é recomendável


O oneTomany vc mapeia assim:

Code:
 @OneToMany(mappedBy="home")
 public List<Chamada> getChamadas() {
     return chamadas;
 }
 


Para salvar A lista de chamadas quando salvar o home...

No seu HomeDAO vc pode sobrescrever o updateSaveOrUpdate ou sobrescrever o saveOrUpdate.

Sobrescrevendo o updateSaveOrUpdate
vc coloca dentro do método apenas o comando para atualizar a lista
Code:
 public void updateSaveOrUpdate(SaveOrUpdateStrategy save) {
     save.saveOrUpdateManaged("chamadas");
 }
 

(A variável save é o parametro do updateSaveOrUpdate)

Atualizando o saveOrUpdate
vc coloca dentro do método:
Code:
 public void saveOrUpdate(Home bean) {
  new SaveOrUpdateStrategy(hibernateTemplate, bean)
          .saveEntity()
          .saveOrUpdateManaged("chamadas")
          .execute();
 }
 

bean no caso seria o home
robmsjr
MultiAction

Membro desde: 26/06/2007 19:30:49
Mensagens: 88
Offline

Valeu pela ajuda, vou estar testando isso logo.

abraços;
robmsjr
MultiAction

Membro desde: 26/06/2007 19:30:49
Mensagens: 88
Offline

No caso para o codigo:

Code:
 public void saveOrUpdate(Home bean) {
   new SaveOrUpdateStrategy(hibernateTemplate, bean)
           .saveEntity()
           .saveOrUpdateManaged("chamadas")
           .execute();
  }
 


funcionar eu preciso criar uma variavel hibernateTemplate sem get e set é isso?

EDIT: troquei hibernateTemplate por getHibernateTemplate(), e tá funcionando legal. valeu!
rogel.garcia
Xiita

Membro desde: 17/04/2007 16:35:03
Mensagens: 275
Offline

hibernateTemplate vc tem em qualquer DAO..


Se não tiver, o método getHibernateTEmplate() com certeza tem...
 
Índice dos Fóruns -> Dúvidas Ir para a página: Anterior  1, 2
Ir para:   
Powered by JForum 2.1.7 © JForum Team