Estou com um problema em um cadastro. O cadastro possui os campos como required, caso eu preencha todos os campos eu consigo salvar.
O problema é o seguinte: No cadastro eu possuo SelectOneMenu e um autoComplete, caso eu deixe o autoCompleto em branco não consigo dar submit no form, mas se eu deixar algum dos SelectOneMenu em branco a página dá um erro:
O estranho que esse erro ocorre no autoComplete que está preenchido e não no SelectOneMenu que está “em branco”.
Segue os componentes:
AutoComplete
<h:outputLabelfor="catSol"value="Postos/Outros:"/><p:autoCompleteid="catSol"minQueryLength="2"autocomplete="true"size="40"required="true"requiredMessage="Campo Postos/Outros é Obrigatório"value="#{cadastrarClienteControle.cadastrarClienteMB.cadastroCliente.codigoCadastro}"completeMethod="#{cadastrarClienteControle.completeClientes}"var="cliente"itemLabel="#{cliente.razaoSocial}"itemValue="#{cliente.codigoCadastro}"queryDelay="1"/><h:outputLabelfor="catSol"value="*Caso não seja um Cliente digite AUTOCOM"/>
lá no seu objeto tipo cliente, qual o tipo do atributo razaoSocial?
Cledsonjr
Boa tarde!
XOOM
[quote=Cledsonjr]Boa tarde!
Só que no seu autocomplete vc me passa um Integer…Ou vc muda o autocomplete ou muda o model.
Cledsonjr
[quote=XOOM]
Cledsonjr:
Boa tarde!
Só que no seu autocomplete vc me passa um Integer…Ou vc muda o autocomplete ou muda o model.
Vlw pela resposta, mas está funcionando o cadastro o problema é na validação.
Caso eu não preencha um dos SelectOneMenu e tente gravar os dados a exeception aparece acusando erro no autoComplete.
Por algum motivo ele “perder a referência” do clientes.razaoSocial e diz que ela não existe mesmo eu a usando normalmente.
XOOM
[quote=Cledsonjr]
XOOM:
Cledsonjr:
Boa tarde!
Só que no seu autocomplete vc me passa um Integer…Ou vc muda o autocomplete ou muda o model.
Vlw pela resposta, mas está funcionando o cadastro o problema é na validação.
Caso eu não preencha um dos SelectOneMenu e tente gravar os dados a exeception aparece acusando erro no autoComplete.
Por algum motivo ele “perder a referência” do clientes.razaoSocial e diz que ela não existe mesmo eu a usando normalmente.
Hm…remove os selectOne e tenta salvar ou remove o autocomplete e tente salvar.
Cledsonjr
Para salvar ele funciona perfeitamente.
O meu problema está quando eu deixo o campo em branco, como essa é uma página de busca os campos podem ficar em branco.
Caso eu deixe um campo em branco dao seguinte erro:
Não importa onde eu deixe em branco o erro sempre acontece no campo itemLabel="#{cliente.razaoSocial}".
Segue a página completa:
<?xml version='1.0' encoding='UTF-8' ?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><htmlxmlns="http://www.w3.org/1999/xhtml"xmlns:h="http://java.sun.com/jsf/html"xmlns:f="http://java.sun.com/jsf/core"xmlns:ui="http://java.sun.com/jsf/facelets"xmlns:p="http://primefaces.org/ui"><h:body><divid="divCadastro"><p:dialogheader="Buscar Atendimento"widgetVar="dialogGerBuscarAtendimento"resizable="false"rendered="true"modal="true"id="dialogGerBuscarAtendimento"draggable="false"closable="true"appendToBody="false"><h:formid="cadastroBuscarAtendimento"><p:panel>Buscar Atendimento
<p:separator/><h:panelGridcolumns="3"cellspacing="10"columnClasses="label, value"styleClass="grid"><h:outputLabelfor="catConvBuscar"value="Assunto:"/><p:selectOneMenuid="catConvBuscar"value="#{cadastrarAssuntoMB.assunto.codigoAssunto}"><f:selectItemitemLabel="SELECIONE UM ASSUNTO"itemValue=""/><f:selectItemsvalue="#{cadastrarAssuntoControle.assuntos}"/></p:selectOneMenu><h:outputLabelfor="catSol"value="*Caso não seja um Cliente digite AUTOCOM"/><h:outputLabelfor="catEmiBusca"value="Emitente:"/><p:selectOneMenuid="catEmiBusca"value="#{cadastrarUsuarioControle.cadastrarUsuarioMB.usuario.codigoUsuario}"><f:selectItemitemLabel="SELECIONE UM DESTINATÁRIO"itemValue=""/><f:selectItemsvalue="#{cadastrarUsuarioControle.usuarios}"/></p:selectOneMenu><h:outputLabelfor="catSol"value=""/><h:outputLabelfor="catDestBusca"value="Destinatário:"/><p:selectOneMenuid="catDestBusca"value="#{cadastrarUsuarioControle.cadastrarUsuarioMB.usuario.codigoUsuario}"><f:selectItemitemLabel="SELECIONE UM DESTINATÁRIO"itemValue=""/><f:selectItemsvalue="#{cadastrarUsuarioControle.usuarios}"/></p:selectOneMenu><h:outputLabelfor="catSol"value=""/><h:outputLabelfor="catSol"value="Postos/Outros:"/><p:autoCompleteid="catSol"minQueryLength="2"size="40"value="#{cadastrarClienteControle.cadastrarClienteMB.cadastroCliente.codigoCadastro}"completeMethod="#{cadastrarClienteControle.completeClientes}"var="cliente"itemLabel="#{cliente.razaoSocial}"itemValue="#{cliente.codigoCadastro}"/><h:outputLabelfor="catSol"value="*Caso não seja um Cliente digite AUTOCOM"/><h:outputLabelfor="catSitBuscar"value="Situação:"/><p:selectOneMenuid="catSitBuscar"value="#{cadastrarAtendimentoMB.atendimento.situacaoAtendimento}"><f:selectItemitemLabel="SELECIONE A SITUAÇÃO"itemValue=""/><f:selectItemsvalue="#{cadastrarAtendimentoControle.situacao}"/></p:selectOneMenu><h:outputLabelfor="catSol"value=""/></h:panelGrid><h:panelGridcolumns="3"cellspacing="5"columnClasses="label, value"styleClass="grid"><h:outputLabelfor="catDestBuscar"value="Descrição/Solução:"/><h:inputTextareaid="descBuscar"rows="3"cols="40"value="#{cadastrarAtendimentoMB.atendimento.descricao}"></h:inputTextarea><h:outputLabelfor="catSol"value="*Digite palavras chave que você quer procurar"/></h:panelGrid></p:panel><p:commandButtonvalue="Buscar"actionListener="#{cadastrarAtendimentoControle.buscarAtendimento}"update=":cadastroBuscarAtendimento, :growl"action="/pages/protected/defaultUser/normal/atendimento/visualizarBuscaAtendimentos.jsp"icon="ui-icon-check"/><p:commandButtonvalue="Limpar"update=":cadastroBuscarAtendimento"actionListener="#{cadastrarAtendimentoControle.limparAtendimento}"icon="ui-icon-refresh"/><p:commandButtonvalue="Sair"update=":cadastroBuscarAtendimento"icon="ui-icon-closethick"actionListener="#{cadastrarAtendimentoControle.limparAtendimento}"oncomplete="dialogGerBuscarAtendimento.hide()"/></h:form></p:dialog></div></h:body></html>
R
rof20004
Entao quando voce nao seleciona nada ele da erro…hummm… coloca um breakpoint no metodo que entra logo ao submeter, se pelo menos ele entrar no metodo voce podera tratar isso facilmente. De antemao, acredito que voce esteja populando esse selectone com um tipo Integer e uma String, que seriam indice e descricao.
Flw!
Cledsonjr
rof20004:
Entao quando voce nao seleciona nada ele da erro…hummm… coloca um breakpoint no metodo que entra logo ao submeter, se pelo menos ele entrar no metodo voce podera tratar isso facilmente. De antemao, acredito que voce esteja populando esse selectone com um tipo Integer e uma String, que seriam indice e descricao.
Flw!
Vlw, pela ajuda.
Então, fiz o breakpoint e consegui chegar até no método.
Quanto a atribuir no auto complete estou atribuindo itemValue="#{cliente.codigoCadastro}" a value="#{cadastrarClienteControle.cadastrarClienteMB.cadastroCliente.codigoCadastro}" que são ambos Integer.
R
rof20004
dentro desse metodo:
#{cadastrarAtendimentoControle.buscarAtendimento}
Voce pode validar, se o usuario nao selecionou nada. Tipo assim: