1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

Recuperar valor do selectOneMenu (tela editar)

Olá pessoal,

Tenho esse commandLink aqui:


<p:column>
            <h:commandLink action="#{tabelasViaturaBean.editarControle}">
                <h:graphicImage library="imagens" name="itens_req.png" style="border:0" title="Editar"/>    
                <f:setPropertyActionListener target="#{tabelasViaturaBean.codigoControle}" value="#{ctr.codigoControle}"/>
                <f:setPropertyActionListener target="#{tabelasViaturaBean.nomeMotorista2}" value="#{ctr.nomeMotorista2}" />
                <f:setPropertyActionListener target="#{tabelasViaturaBean.nomeViatura2}" value="#{ctr.nomeViatura2}" />
                <f:setPropertyActionListener target="#{tabelasViaturaBean.dataHoraSaida}" value="#{ctr.dataHoraSaida}" />
                <f:setPropertyActionListener target="#{tabelasViaturaBean.dataHoraEntrada}" value="#{ctr.dataHoraEntrada}" />
                <f:setPropertyActionListener target="#{tabelasViaturaBean.passageiro}" value="#{ctr.passageiro}" />
                <f:setPropertyActionListener target="#{tabelasViaturaBean.observacao}" value="#{ctr.observacao}" />
                </h:commandLink>
            </p:column>

Quando eu clico nele eu abro a tela de edição. O problema é que eu nao estou conseguindo recuperar o valor dos 2 selecOneMenu. Como posso fazer isso ?

Tela de edição:

<h:panelGrid columns="2">    

                    <h:outputText value="Motorista:"/>      
                     <h:selectOneMenu  value="#{tabelasViaturaBean.produtoMotorista.objetoMotorista}"
                      converter="motoristaViaturaConverter" items="#{motoristaBean.motoristas}">


                    <f:selectItem itemLabel="Selecione" itemValue="" />
                        <f:selectItems 
                            value="#{motoristaBean.motoristas}" 
                            var="motoristas"
                            itemValue="#{motoristas}" 
                            itemLabel="#{motoristas.nome}" />
                    </h:selectOneMenu>


                          <h:outputText value="Viatura:"/>  
                        <h:selectOneMenu  value="#{tabelasViaturaBean.produtoViatura.objetoViatura}"
                        converter="motoristaViaturaConverter" items="#{viaturaBean.listaNomeViatura}">
                         <f:selectItem itemLabel="Selecione" itemValue=""/>  
                         <f:selectItems 
                                 value="#{viaturaBean.listaNomeViatura}"
                                 var ="listaNomeViatura"
                                itemValue="#{listaNomeViatura}"
                                itemLabel="#{listaNomeViatura.nome}"/>
                </h:selectOneMenu> 

                 <h:outputText value="Data de entrada:"/>  
                 <h:inputText   label="DataHoraEntrada"
                    value="#{tabelasViaturaBean.dataHoraEntrada}" size="40"/>    

                 <h:outputText value="Data de Saída:"/>  
                 <h:inputText label="DataHoraSaida"
                    value="#{tabelasViaturaBean.dataHoraSaida}" size="40"/>    



                <h:outputText value="Passageiro:"/> 
                <h:inputTextarea  cols="80" rows="5" label="Passageiro"
                    value="#{tabelasViaturaBean.passageiro}"/>    


                <h:outputText value="Observação:"/> 
                <h:inputTextarea  cols="80" rows="5" label="Observacao"
                    value="#{tabelasViaturaBean.observacao}"/>

                  <br/>
                        <br/>
                            <br/>

                <h:commandButton action="#{tabelasViaturaBean.atualizarControle}" value="Atualizar"  style="font-size: 14px;"/>

Método "atualizar":


public String atualizarControle(){

        FacesContext context = FacesContext.getCurrentInstance();
        ViaturaRN viaturaRN = new ViaturaRN();
        ControleRN controleRN = new ControleRN();

        if (getProdutoMotorista().objetoMotorista == null){
            FacesMessage facesMessage = new FacesMessage(
            "Escolha um Motorista.");
            context.addMessage(null, facesMessage);
            return null;
        }


        if (getProdutoViatura().objetoViatura == null){
            FacesMessage facesMessage = new FacesMessage(
            "Escolha uma Viatura.");
            context.addMessage(null, facesMessage);
            return null;
        }


        Controle controleAtualizado = controleRN.buscarPorCodigo(getCodigoControle());
        controleAtualizado.setMotorista(getProdutoMotorista().objetoMotorista);
        controleAtualizado.setViatura(getProdutoViatura().objetoViatura);
        controleAtualizado.setDataHoraEntrada(getDataHoraEntrada());
        controleAtualizado.setDataHoraSaida(getDataHoraSaida());
        controleAtualizado.setPassageiro(getPassageiro());
        controleAtualizado.setObservacao(getObservacao());

        FacesMessage facesMessage = new FacesMessage(
                   "Controle Atualizado com sucesso.");
                context.addMessage(null, facesMessage);

        return "/pages/restrito_cv/lista_controle";

    }

Obrigado !

  • Tentou adicionar teus selectOneMenu em um f:setPropertyActionListener?

    eduardoroyer   01 de abr de 2014
  • Vou tentar fazer isso !

    Agr0   01 de abr de 2014
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

2 respostas

Não é a resposta que estava procurando? Procure outras perguntas com as tags web ou faça a sua própria pergunta.