Fórum Erro ao retornar nome pelo id Auto Complemente com PrimeFaces e converte #571536
24/11/2016
0
Bom dia!
Oi Pessoal,
estou tentando criar um projeto usando Jsf, primeFaces, Cdi e Jpa, ainda em fase de aprendizado.
então me perdoe se eu disser bobagens também e minha primeira postagem aqui no forum.
Pois bem vamos ao Problema.
1º Item Tenho um formulário de cadastro e estou querendo usar auto complemente
2º Item precisaria que o meu converte retorna-se o nome em auto complemente a partir do id.
porem não estou conseguindo fazer isso vou postar o código do meu formulário e do meu converte, se alguém poder me dar uma força
1º Item
2º Item
Att,
Amarildo.
Oi Pessoal,
estou tentando criar um projeto usando Jsf, primeFaces, Cdi e Jpa, ainda em fase de aprendizado.
então me perdoe se eu disser bobagens também e minha primeira postagem aqui no forum.
Pois bem vamos ao Problema.
1º Item Tenho um formulário de cadastro e estou querendo usar auto complemente
2º Item precisaria que o meu converte retorna-se o nome em auto complemente a partir do id.
porem não estou conseguindo fazer isso vou postar o código do meu formulário e do meu converte, se alguém poder me dar uma força
1º Item
<!DOCTYPE html>
<ui:composition template="/WEB-INF/template/Layout.xhtml"
xmlns="http://www.w3.org/1999/xhtml"
xmlns:f="http://xmlns.jcp.org/jsf/core"
xmlns:h="http://xmlns.jcp.org/jsf/html"
xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
xmlns:p="http://primefaces.org/ui"
xmlns:o="http://omnifaces.org/ui">
<f:metadata>
<o:viewParam name="id" value="#{cadastroFuncionarioBean.funcionario}" />
<f:viewAction action="#{cadastroFuncionarioBean.prepararCadastro}" />
</f:metadata>
<ui:define name="titulo">Cadastro RH</ui:define>
<ui:define name="corpo">
<h1>Cadastro de Funcionários</h1>
<h:form id="frm">
<p:messages showDetail="false" showSummary="true" autoUpdate="true" />
<h3>Dados Pessoais</h3>
<p:panelGrid columns="4">
<p:outputLabel value="Nome" for="nome" />
<p:autoComplete id="nome" size="60"
value="#{cadastroFuncionarioBean.pessoa.nome}"
completeMethod="#{cadastroFuncionarioBean.pesquisarNomes}" />
<p:outputLabel value="Cpf" for="cpf" />
<p:autoComplete id="cpf" size="14"
value="#{cadastroFuncionarioBean.funcionario.cpf}"
completeMethod="#{cadastroFuncionarioBean.pesquisarCpfs}" />
<p:outputLabel value="Tipo" for="sexo" />
<p:selectOneButton id="sexo"
value="#{cadastroFuncionarioBean.funcionario.sexo}">
<f:selectItems
value="#{cadastroFuncionarioBean.tiposFuncionarios}"
var="tipoFuncionario" itemValue="#"
itemLabel="#{tipoFuncionario.sexo}" />
</p:selectOneButton>
</p:panelGrid>
<h3>Endereço</h3>
<p:panelGrid columns="4">
<p:outputLabel value="Endereço" for="endereco" />
<p:autoComplete id="endereco" size="60"
value="#{cadastroFuncionarioBean.pessoa.endereco}"
completeMethod="#{cadastroFuncionarioBean.pesquisarEnderecos}" />
<p:outputLabel value="Numero" for="numero" />
<p:autoComplete id="numero" size="6"
value="#{cadastroFuncionarioBean.pessoa.numero}"
completeMethod="#{cadastroFuncionarioBean.pesquisarNumeros}" />
<p:outputLabel value="Complemento" for="complemento" />
<p:autoComplete id="complemento" size="20"
value="#{cadastroFuncionarioBean.pessoa.complemento}"
completeMethod="#{cadastroFuncionarioBean.pesquisarComplementos}" />
<p:outputLabel value="Bairro" for="bairro" />
<p:autoComplete id="bairro" size="30"
value="#{cadastroFuncionarioBean.pessoa.bairro}"
completeMethod="#{cadastroFuncionarioBean.pesquisarBairros}" />
<p:outputLabel value="Cidade" for="cidade" />
<p:autoComplete id="cidade" size="30"
value="#{cadastroFuncionarioBean.pessoa.cidade}"
completeMethod="#{cadastroFuncionarioBean.pesquisarCidades}" />
<p:outputLabel value="Estado" for="estado" />
<p:autoComplete id="estado" size="2"
value="#{cadastroFuncionarioBean.pessoa.estado}"
completeMethod="#{cadastroFuncionarioBean.pesquisarEstados}" />
<p:outputLabel value="Cep" for="cep" />
<p:autoComplete id="cep" size="9"
value="#{cadastroFuncionarioBean.pessoa.cep}"
completeMethod="#{cadastroFuncionarioBean.pesquisarCeps}" />
</p:panelGrid>
<h3>Dados de Admissão</h3>
<p:panelGrid columns="2">
<p:outputLabel value="Cargo" for="cargo" />
<p:autoComplete id="cargo" size="60"
value="#{cadastroFuncionarioBean.funcionario.cargo}"
completeMethod="#{cadastroFuncionarioBean.pesquisarCargos}" />
<p:outputLabel value="Salário" />
<p:inputText size="12"
value="#{cadastroFuncionarioBean.funcionario.salario}"
label="salario">
<f:convertNumber locale="pt_BR" maxFractionDigits="2"
minFractionDigits="2" />
</p:inputText>
<p:outputLabel value="Data de Admissão" for="dataAdmissao" />
<p:calendar id="dataAdmissao" size="12" pattern="dd/MM/yyyy"
value="#{cadastroFuncionarioBean.funcionario.dataAdmissao}">
<p:ajax event="dateSelect" update="@this dataAdmissao"
process="@this dataAdmissao"
listener="#{cadastroFuncionarioBean.dataAdmissaoAlterada}" />
</p:calendar>
</p:panelGrid>
<p:commandButton value="Salvar"
action="#{cadastroFuncionarioBean.salvar}" icon="ui-icon-disk"
update="@form" />
</h:form>
</ui:define>
</ui:composition>
2º Item
package br.com.amarildo.util;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.convert.Converter;
import javax.faces.convert.FacesConverter;
import javax.inject.Inject;
import br.com.amarildo.model.Pessoa;
import br.com.amarildo.repository.Pessoas;
@FacesConverter(forClass = Pessoa.class)
public class PessoaConverter implements Converter {
@Inject // funciona graças ao OmniFaces
private Pessoas pessoas;
@Override
public Object getAsObject(FacesContext context, UIComponent component, String value) {
Pessoa retorno = null;
if (value != null && !"".equals(value)) {
System.out.println("Teste Coverte getAsObject Pessoa = "+value);
retorno = this.pessoas.porId(new Long(value));
}
return retorno;
}
@Override
public String getAsString(FacesContext context, UIComponent component, Object value) {
if (value != null && !"".equals(value)) {
System.out.println("Teste Coverte getAsString Pessoa = "+value);
//return ((Pessoa) value).getId().toString();
return ((Pessoa) value).getNome().toString();
}
return null;
}
}
Att,
Amarildo.
Javax
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)