Erro de conversão ao definir o valor para 'null converter'

5 respostas
J

então galera
recebendo esse erro:

Erro de conversão ao definir o valor ‘model.Espaco[ id=3 ]’ para ‘null Converter’.

acontece que possuo na view abaixo um :

<p:selectOneMenu id="local" rendered="#{loginManagedBean.login.autorizacao == loginManagedBean.teste}"  value="#{espacoManagedBean.espaco}" >
                    <p:ajax event="change" update="testeteste"/>
                    <f:selectItem itemValue="#" itemLabel="Selecione um espaço"/>
                    <f:selectItems var="espaco" value="#{espacoManagedBean.espacoLista}" itemLabel="#{espaco.nome}" itemValue="#{espaco}" />
                </p:selectOneMenu>
            </h:panelGrid >

no meu teste não estou conseguindo passar esse objeto para o managed bean dando o erro acima.
minha view:

<?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"
      xmlns:p="http://primefaces.org/ui">
    <h:head>
        <title>Facelet Title</title>
    </h:head>
    <h:body>
        <h:form>
            <p:messages autoUpdate="true"/>
            <h:panelGrid id="cadastroPg" cellspacing="2"  columns="2">
                <h:outputLabel value="Nome:" for="nome"/>
                <p:inputText id="nome" value="#{loginManagedBean.login.nome}" title="Nome"/>
                <h:outputLabel value="Email:" for="email"/>
                <p:inputText id="email" value="#{loginManagedBean.login.email}" title="Email"/>
                <h:outputLabel value="Username:" for="username"/>
                <p:inputText id="username" value="#{loginManagedBean.login.username}" title="Username"/>
                <h:outputLabel value="Password:" for="password"/>
                <p:password feedback="true" required="true" weakLabel="Senha fraca" strongLabel="Senha forte" promptLabel="Por favor digite uma senha" goodLabel="Senha aceitável" inline="true" minLength="6" id="password" value="#{loginManagedBean.login.password}" title="Password" />
                <h:outputLabel value="Autorizacao:" for="autorizacao"/>
                <p:selectOneMenu id="autorizacao" required="true" value="#{loginManagedBean.login.autorizacao}">
                    <p:ajax event="change" update="localp"/> 
                    <f:selectItem itemValue="#" itemLabel="Selecione um Perfil"/>
                    <f:selectItem itemValue="Administrador" itemLabel="Administrador"/>
                    <f:selectItem itemValue="Coordenador" itemLabel="Coordenador"/>
                    <f:selectItem itemValue="Visualizador" itemLabel="Visualizador"/>
                </p:selectOneMenu>
            </h:panelGrid>
            <h:panelGrid id="localp" columns="2" cellpadding="1">
                <h:outputText value="Local:" rendered="#{loginManagedBean.login.autorizacao == loginManagedBean.teste}"/>
                <p:selectOneMenu id="local" rendered="#{loginManagedBean.login.autorizacao == loginManagedBean.teste}"  value="#{espacoManagedBean.espaco}" >
                    <p:ajax event="change" update="testeteste"/>
                    <f:selectItem itemValue="#" itemLabel="Selecione um espaço"/>
                    <f:selectItems var="espaco" value="#{espacoManagedBean.espacoLista}" itemLabel="#{espaco.nome}" itemValue="#{espaco}" />
                </p:selectOneMenu>
            </h:panelGrid >
            <br/>
            <p:commandButton value="Cadastrar" action="#{loginManagedBean.gravar()}"/>
            <br/>
            <h:outputText value="#{loginManagedBean.espaco}" id="testeteste"/>            
        </h:form>
    </h:body>
</html>

Adoraria alguma ajuda … obrigado desde já
=D

5 Respostas

J

Você tem que implementar um Converter personalizado, abaixo tem três links que poderão te ajudar

http://www.roseindia.net/jsf/customconverter.shtml


http://www.mkyong.com/jsf2/custom-converter-in-jsf-2-0/

J

mais aí é que está o problema
ele falou

Erro de conversão ao definir o valor ‘model.Espaco[ id=3 ]’ para ‘null Converter’.

conversor nulo … só que eu quero que esse model.Espaço com o id 3 no caso seja alterado sem nenhum valor nulo

J

jhonnyW:
então galera
recebendo esse erro:
Erro de conversão ao definir o valor ‘model.Espaco[ id=3 ]’ para ‘null Converter’.

acontece que possuo na view abaixo um :

<p:selectOneMenu id="local" rendered="#{loginManagedBean.login.autorizacao == loginManagedBean.teste}"  value="#{espacoManagedBean.espaco}" >
                    <p:ajax event="change" update="testeteste"/>
                    <f:selectItem itemValue="#" itemLabel="Selecione um espaço"/>
                    <f:selectItems var="espaco" value="#{espacoManagedBean.espacoLista}" itemLabel="#{espaco.nome}" itemValue="#{espaco}" />
                </p:selectOneMenu>
            </h:panelGrid >

Teria que ficar assim

<p:selectOneMenu id="local" rendered="#{loginManagedBean.login.autorizacao == loginManagedBean.teste}"  value="#{espacoManagedBean.espaco}" >
                    <p:ajax event="change" update="testeteste"/>
                      <f:converter converterId="seu_converter"/> <!-- linha para adicionar -->
                    <f:selectItem itemValue="#" itemLabel="Selecione um espaço"/>
                    <f:selectItems var="espaco" value="#{espacoManagedBean.espacoLista}" itemLabel="#{espaco.nome}" itemValue="#{espaco}" />
                </p:selectOneMenu>
            </h:panelGrid >
J

Você quer dizer quer o campo como obrigatório?? Se for isso coloque:

required="true"

Ai se o não for selecionado nenhum objeto, o formulário não irá submeter a sua requisição

J

seria o caso de eu estar selecionando um valor no onemenu e ele fica aparecendo esse erro

Criado 10 de março de 2012
Ultima resposta 11 de mar. de 2012
Respostas 5
Participantes 2