Olá. Estou querendo implementar numa pagina jsf (de cadastro) o componente selectOneMenu mas estou apanhando feio já tem 2 dias. O que tenho é uma classa AlunoManager que contem um objeto curso. É justamante esse curso que eu quere pegar as informação que estão no banco de dados e colocar no SelecteOneMenu. Alguem poderia mim ajudar a construir esse metodo, ou mostra um exemplo.
Obs: Já implementei o exemplo q o thiagocg mostrou, mas esta dando um erro cur.todosCurso is not defined.
Classespublic class Aluno implements Serializable{
private Integer id;
private String nome;
private Integer matricula;
private Integer cpf;
private Curso curso;
...
public class Curso implements Serializable{
private Integer id;
private String nome;
private String sigla;
...
public class AlunoManager {
private Aluno aluno = new Aluno();
private AlunoDao alunoDao = DaoFactory.getAlunoDao();
private Integer id;
private String nome;
private Integer matricula;
private Integer cpf;
private Curso curso;
public String novo(){
try{
aluno = new Aluno();
aluno.setCpf(cpf);
aluno.setCurso(curso);
aluno.setId(id);
aluno.setMatricula(matricula);
aluno.setNome(nome);
alunoDao.salvar(aluno);
}catch (Exception e) {
e.printStackTrace();
}
return "continue";
}
public class CursoManager {
private Curso curso = new Curso();
private CursoDao cursoDao = DaoFactory.getCursoDao();
private Integer id;
private Integer codigo;
private String nome;
private String sigla;
public List<SelectItem> todosCurso() throws Exception{
List<SelectItem> list = new ArrayList<SelectItem>();
List<Curso> cursos = cursoDao.listarTodos();
for(Curso c: cursos){
list.add(new SelectItem(c.getId().toString(),c.getNome()));
}
return list;
}
...
tenho tambem uma classe:
public abstract class AbstractDao<Tipo, TipoID extends Serializable> implements InterfaceDao<Tipo, TipoID>
public void salvar(Tipo obj)throws Exception;
...
public Tipo recuperar(TipoID id)throws Exception;
...
public void atualizar(Tipo obj)throws Exception;
...
public void excluir(Tipo obj)throws Exception;
...
public List<Tipo> listarTodos()throws Exception;
...
}
pagina criarAluno.jsp
...
<h:form>
<h:outputText value="Preenchar os Dados:"></h:outputText>
<br />
<table>
<tr>
<td>MATRICULA:</td>
<td><h:inputText id="matricula" value="#{al.matricula}"
required="true" /></td>
</tr>
<tr>
<td>NOME:</td>
<td><h:inputText id="nome" value="#{al.nome}" required="true" /><br />
</td>
</tr>
<tr>
<td>CPF:</td>
<td><h:inputText id="cpf" value="#{al.cpf}" required="true" /><br />
</td>
</tr>
<tr>
<h:panelGrid columns="2">
<h:outputText value="Curso" />
<h:selectOneMenu>
<f:selectItems value="#{cur.todosCurso}"/>
</h:selectOneMenu>
</h:panelGrid>
</tr>
<tr>
<td></td>
<td><h:commandButton action="#{al.novo}" value="salvar" /></td>
</tr>
</table>
</h:form>
...
faces-config.xml
...
<managed-bean>
<managed-bean-name>al</managed-bean-name>
<managed-bean-class>managers.AlunoManager</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
<managed-bean>
<managed-bean-name>cur</managed-bean-name>
<managed-bean-class>managers.CursoManager</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
...