Recuperar valor do combobox no form

Bom dia, sou novo por aqui e sou novo na programação em java e gostaria de uma ajuda se possível:

Cadastro de Alimentos:

  Descrição:    <html:text property="alimento.descricao" size="20" maxlength="40" /> 
    Gênero: 
           <html:select property="alimento.cod_genero" > 
           <html:options collection="generos" 
                 property="codigo" labelProperty="descricao"/> 
          </html:select> 

Esse gênero seria o gênero do alimento, ele preenche o combobox direitinho com a descrição e o value certo só que não sei como pegar o valor do combobox selecionado no form, ele traz os valores relativos ao alimento certinho mais relativo ao gênero ele não traz.

public class AlimentoForm extends ActionForm { 

private Alimento alimento = new Alimento(); 

public Alimento getAlimento() { 
return this.alimento; 
} 

public class Alimento { 

private int codigo; 
private String descricao; 
private Genero cod_genero; 
private Medida cod_medida; 
private boolean fragil; 
private double qtd_minima; 
private String local_armazenamento; 

Nem sei se conseguir me expressar bem …

Obrigado …

  • Os getters e setters do seu Action Form estao ok?
  • O name gerado pelo struts na sua pagina é alimento.cod_genero?
  • O valor esta indo no request?
  • Ele precisa ser convertido? Você tem um conversor associado ao tipo?

Os getters e setters do seu Action Form estao ok?

R: Acho que estão, foi o que eu passei ai em cima pego o objeto alimento inteiro.

  • O valor esta indo no request?

R: Então eu debuguei no eclipse e olhando o form vem correto os valores descrição, quantidade, local_armazenamento, agora o cod_genero relativo ao genero do alimento vem null …

ex: quando na hora que vai incluir no banco dou o comando:

System.out.println(alimento.getDescricao()); // aqui mostra certo 
System.out.println(alimento.getQtd_minima()); // aqui mostra certo 
System.out.println(alimento.getLocal_armazenamento()); // aqui mostra certo 
System.out.println(alimento.getCod_genero().getCodigo()); // aqui mostra null
  • Ele precisa ser convertido? Você tem um conversor associado ao tipo?

Não entendi essa pergunta …

Obs: é o primeiro programa que faço em java desculpe se estou sendo leigo em algumas ou todas partes … hehe …

Valeu …

Cara, td nao entendi sua pergunta. Seja mais explicito. E como vc é novo por aqui, deve estar se abituando a navegacao do forum. Esta pergunta deve ser feita no setor de java web, e nao em java basico.

Falow

Pelo que vi no seu codigo, o tipo do campo cod_genero é Genero. Entao, para que o Struts faça a conversao do tipo voce precisar criar uma classe que implemente a interface Converter, do common-beans, e registre ela na sua aplicação.

Por default, todas as informações do request sao enviadas como String, e o Struts converte elas para o tipo do campo do seu ActionForm. Se ele não encontra o tipo, ele gera uma exceção mas nao para o processamento, deixando o campo como null.

Este ‘erro’ está ocorrendo porque você está tentando setar um int em um Genero.

Não lembro ao certo se isso vai funcionar, tente aih:

<html:select property="alimento.cod_genero.codigo" > 

No seu lugar não colocaria objetos no ActionForm, se você der uma estudada no Struts (vc está usando Struts, certo?) vai ver q o ActionForm deve ter apenas String’s ou Boolean’s. Na sua Action vc transforma o ActionForm em um Bean, esse sim tem seus atributos tipados.