Desculpem upar o tópico, mas gostaria de compartilhar com vcs o que eu fiz aqui pra mostrar no Combobox duas coisas, a lista do que vẽm do banco, no meu caso uma lista de gêneros de filmes e o gênero do filme cadastrado.
A primeira coisa que eu fiz foi alterar o método edita() que eu tinha, seguindo a apostila da Caelum, o método era assim:
public Filme edita(Integer id) {
return filmeDao.carrega(id);
}
Ficou assim:
public void edita(Integer id) {
result.include("genero", generoDao.lista());
result.include("filme", filmeDao.carrega(id));
}
Dessa forma eu envio pelo FilmeController a lista de gêneros cadastrados no banco e todos os dados do filme cadastrado.
E o Combobox eu fiz com a ajuda do Lucas em outro tópico, fiz um “mix” de Combobox de form() com um de lista():
<li id="genero">
<label for="genero">Gênero</label>
<select id="genero" name="filme.genero">
<c:forEach var="filme.genero" items="${filme.genero}">
<option value="${filme.genero}">${filme.genero}</option>
</c:forEach>
<c:forEach var="genero" items="${genero}">
<option value="${genero.nome}">${genero.nome}</option>
</c:forEach>
</select>
</li>
Um <c:forEach> para cada opção, um para o método de listar gêneros e o outro carregando o gênero do filme cadastrado.
Acho que isso será útil para mais alguém.
Ficou só uma coisa para corrigir, ao abrir o Combobox para alteração, mostra duas vezes o gênero que está cadastrado no filme, isso ocorre pq um vêm da lista de gêneros e o outro é do próprio filme, aparecem dois “Aventura” por exemplo.
Se alguém souber de uma forma melhorar isto aceito sugestões. =)
Abraço!!