Ok, ok…
Sei que haverá gente sedenta de sangue dizendo que já tem milhões de tópicos sobre isso, mas eu realmente estou fazendo uma busca intensiva e não estou encontrando solução.
Li inúmeras questões e não resolvi. Imagino que seja algo bem simples e que até me deparei com a resposta nos tantos tópicos que vi pela web, mas não consegui aplicar não.
… Ou talvez eu seja muito estúpido.
Bom… Comecei a mexer em JSF ontem e estou aplicando num projetinho aqui no trabalho, mas já perdi bastante tempo nisso.
Enfim.
O erro que está dando é o seguinte:
Erro de expressão: Objeto denominado: cargoConverter não encontrado.
O que quero fazer é uma inserção de Pessoa.
Segue o xhtml:
<h:panelGrid columns = "3">
<h:outputLabel for = "matricula" value ="Matricula:"/>
<h:inputText value="#{pessoaController.pessoa.matricula}" id="matricula"/>
<h:message for="matricula" errorClass="invalid"/>
<h:outputLabel for = "nome" value ="Nome:"/>
<h:inputText value="#{pessoaController.pessoa.nome}" id="nome"/>
<h:message for="nome" errorClass="invalid"/>
<h:outputLabel for = "cargo" value ="Cargo:"/>
<h:selectOneMenu value="#{pessoaController.pessoa.cargo}" id="cargo">
<f:selectItems value="#{cargoController.all}" var="cargo"
itemLabel="#{cargo.nome}" itemValue="#{cargo.id}"/>
<f:converter converterId="cargoConverter" />
</h:selectOneMenu>
<h:message for="cargo" errorClass="invalid"/>
</h:panelGrid>
Converter:
@FacesConverter(value = "cargoConverter")
public class CargoConverter implements Converter {
@Inject
private CargoDao dao;
public Object getAsObject(FacesContext facesContext, UIComponent uiComponent, String value) {
if (value.isEmpty()) {
return null;
} else {
return dao.findById(Long.getLong(value));
}
}
public String getAsString(FacesContext facesContext, UIComponent uiComponent, Object value) {
if (value == null || value.equals("")) {
return "";
} else {
return String.valueOf(((Cargo) value).getId());
}
}
}
No PessoaController eu só tenho os atributos:
@Inject
private PessoaDao pessoaDao;
private Pessoa pessoa;
Cargo é uma classe e é um dos atributos de Pessoa.
Muito obrigado
