Aqui está minha página:
Página XHTML:<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core">
<head>
<title>Lista de Pessoas</title>
</head>
<body>
<h:form>
<h:selectOneMenu value="#{meuBean.pessoaSelecionada}">
<f:selectItems value="#{meuBean.listaDePessoas}" />
</h:selectOneMenu>
<h:commandButton value="OK" action="#{meuBean.selecionarPessoaOk}"/>
</h:form>
</body>
</html>
public class meuBean {
private Set<Pessoa> listaDePessoas;
private Pessoa pessoaSelecionada;
public meuBean() {
listaDePessoas = new LinkedHashSet<Pessoa>();
pessoaSelecionada = null;
listaDePessoas.add(new Pessoa("Jorje", 30, "Rio de Janeiro"));
listaDePessoas.add(new Pessoa("Amélia", 27, "Minas Gerais"));
listaDePessoas.add(new Pessoa("Mário", 32, "São Paulo"));
}
public String selecionarAlunoOk() {
if (pessoaSelecionada == null) {
return null;
} else {
return "detalharPessoa"; // vai para pessoa-detalhe.xhtml
}
}
public Set<Pessoa> getListaDePessoas() {
return listaDePessoas;
}
<navigation-rule>
<from-view-id>/main-alunos.xhtml</from-view-id>
<navigation-case>
<from-outcome>detalharPessoa</from-outcome>
<to-view-id>faces/pessoa-detalhe.xhtml</to-view-id>
</navigation-case>
O problema é que se eu selecionar o Jorje e clicar no commandButton Ok, aparece: "Erro de conversão ao definir o valor 'Jorje' para 'null Converter'. " Assim acontece com qualquer outra pessoa que está na lista. Como faço pra pegar a pessoa selecionada da lista e ir pra uma próxima página, onde terá os detalhes dela (nome, idade, cidade etc)?