Problema Struts + ArrayList  XML
Índice dos Fóruns » Desenvolvimento Web
Autor Mensagem
SadNess
JavaTeenager
[Avatar]

Membro desde: 30/03/2006 16:51:25
Mensagens: 197
Offline

to com um problema aqui
seguinte
tenho um actionForm e cada propriedade tem seus getters e setters:


e tenho uma jsp com o seguinte trecho:



mas quando eu dou um submit neste form, eu recebi a seguinte excecao:


Eu nunca utilizei um ActionForm antes que possui um ArrayList como propriedade
tenho praticamente certeza que é aqui que está o problema, deve ser algo do tipo ele estar esperando um array e estar recebendo apenas um valor
mas não sei como solucionar este problema
alguém tem alguma ideia?
bonfarj
Java Ninja
[Avatar]

Membro desde: 28/03/2006 09:55:47
Mensagens: 298
Offline

O problema é exatamente o que vc falou, veja:



Vc está passando o resultado do <html:select> para alFases, um objeto ArrayList, mas está enviando id, que deve ser um int ou Integer.


property é o atributo do ActionForm que será preenchido com o resultado do <html:select>.


value é o atributo de um objeto da lista name.property que será enviado como resultado do <html:select>.

label é o atributo de um objeto da lista name.property que será exibido para o usuário na combobox gerada pelo <html:select>.

Qualquer coisa estamos aí.

IGOR BRITO ALVES
@igoralves
SadNess
JavaTeenager
[Avatar]

Membro desde: 30/03/2006 16:51:25
Mensagens: 197
Offline

mas como eu resolvo este problema?
eu quero mandar um objeto Concurso pra action
Como eu faço pra que a jsp seja compatível com o ArrayList do Concurso?
bonfarj
Java Ninja
[Avatar]

Membro desde: 28/03/2006 09:55:47
Mensagens: 298
Offline

Porque você não envia o atributo id da fase?

abraços,

IGOR BRITO ALVES
@igoralves
SadNess
JavaTeenager
[Avatar]

Membro desde: 30/03/2006 16:51:25
Mensagens: 197
Offline

não entendi muito bem oq vc disse cara
basicamente o que eu tenho é uma jsp que utiliza 2 actions
na jsp eu tenho 2 selects: um que mostra o nome dos concursos e um que é para escolher a fase do concurso
quando o cara seleciona o nome de um concurso, eu uso o "onchange" do select para mandar pra uma action que vai listar todas as fases que esse concurso tem e vai voltar para a mesma jsp, preenchendo o select de fases
e tem uma action que é executada quando se dá submit, para pegar o concurso escolhido e a fase deste concurso selecionada
não estou sabendo direito como implementar isto com strtus, ja que ele não aceita um arraylist a partir de um select
bonfarj
Java Ninja
[Avatar]

Membro desde: 28/03/2006 09:55:47
Mensagens: 298
Offline

Entendi, eu falei errado, nao era id da fase, era id do concurso. Vc pode fazer com q o select do concurso envie o id do concurso correspondente. Sabendo o id do concurso vc consegue definir o concurso e carrega o outro select com as fases desse concurso.

abraços,

IGOR BRITO ALVES
@igoralves
SadNess
JavaTeenager
[Avatar]

Membro desde: 30/03/2006 16:51:25
Mensagens: 197
Offline

sim
é isto o que eu fiz
o problema é que ele tenta passar um id da fase pro ActionForm da action, sendo que o atributo fases de Concurso é um ArrayList
o struts não sabe converter String em ArrayList, este é o problema, então eu recebo um BeanUtil.popolate() exception
bonfarj
Java Ninja
[Avatar]

Membro desde: 28/03/2006 09:55:47
Mensagens: 298
Offline

Então, faça o seguinte:



No property do <html:select> passe o id da fase ao invés do ArrayList (se não existir um atributo para isso crie, algo como String idFase, por exemplo). Faça o mesmo para o outro <html:select>, preenchido com uma lista de concurso e que retorne um idConcurso.

abraços,

IGOR BRITO ALVES
@igoralves
 
Índice dos Fóruns » Desenvolvimento Web
Ir para:   
Powered by JForum 2.1.8 © JForum Team