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

Escolher atributo de busca pelo selectOneMenu.

Pessoal, tenho página aqui:

enter co<!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:ui="http://java.sun.com/jsf/facelets"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:p="http://primefaces.org/ui">

<ui:composition template="/templates/interna.xhtml">
 <ui:define name="corpo">


   <h:panelGrid columns="1" width="100%" id="listaControle" >
     <p:panel id="tam" header="Lista de Controle"  >    

        <h:form id="tm" >

            <h:messages />
            <br/>
            <h:commandLink action="/pages/restrito_cv/lista_controle"
                title="voltar">
                <h:graphicImage library="imagens" name="seta_voltar.png"/>
            </h:commandLink>
            <br/>
            <br/>

             <h:panelGrid columns="1" width="45%">
                <p:panel header="Filtro" columns="3" >
                     <br/>

                         <h:selectOneMenu value ="#{tabelasViaturaBean.filtroBuscaControle}">
                             <f:selectItem itemLabel="Selecione" itemValue=""/>     
                             <f:selectItem itemLabel="Nome do Motorista" itemValue="m"/>  
                             <f:selectItem itemLabel="Nome da Viatura" itemValue="v"/>
                             <f:selectItem itemLabel="Data de Saída" itemValue="ds"/>
                             <f:selectItem itemLabel="Data de Entrada" itemValue="de"/>
                             <f:selectItem itemLabel="Placa da Viatura" itemValue="pv"/>
                         </h:selectOneMenu> 

                     <h:inputText id="campoBuscaControle" label="campoBuscaControle" value="#{tabelasViaturaBean.campoBuscaControle}" />
                    <h:commandButton action="#{tabelasViaturaBean.escolhaBusca}" value="Listar"/>

                    </p:panel>
            </h:panelGrid>    
            <br/>
            <br/>
        <p:poll interval="600"  update="tableControle">     
            <p:dataTable id="tableControle" value="#{tabelasViaturaBean.buscaControle}" var="ctr" rows="10" cellpadding="5"
            paginator="true" sortMode="multiple" emptyMessage="Nenhum registro encontrado" >

            <f:facet name="caption">

                <br />
            </f:facet>

            <p:column   width="4%">
                <f:facet name="header">#C</f:facet>
                <h:outputText value="#{ctr.codigoControle}"/>
            </p:column>

            <p:column  width="20%" style="white-space:normal !important;">
                <f:facet name="header">Motorista</f:facet>
                <h:outputText value="#{ctr.nomeMotorista2}" />
            </p:column>

            <p:column  style="white-space:normal !important;" width="20%">
                <f:facet name="header">Viatura</f:facet>
                <h:outputText value="#{ctr.nomeViatura2} #{ctr.placaOperacional2} #{ctr.cor2}"/>
            </p:column>


            <p:column  style="white-space:normal !important;" width="20%">
                <f:facet name="header">Data de Saída</f:facet>
                <h:outputText value="#{ctr.dataHoraSaida}" />
            </p:column>

            <p:column  style="white-space:normal !important;" width="20%">
                <f:facet name="header">Data de Entrada</f:facet>
                <h:outputText value="#{ctr.dataHoraEntrada}" />
            </p:column>

            <p:column  style="white-space:normal !important;" width="20%">
                <f:facet name="header">Passageiro</f:facet>
                <h:outputText value="#{ctr.passageiro}" />
            </p:column>

            <p:column  style="white-space:normal !important;" width="20%">
                <f:facet name="header">Observação</f:facet>
                <h:outputText value="#{ctr.observacao}" />
            </p:column>

            <p:column  style="white-space:normal !important;" width="20%">
                <f:facet name="header">Local</f:facet>
                <h:outputText value="#{ctr.nomeLocalViatura}" />
            </p:column>de here

...

e aqui tenho o meu bean:


@ManagedBean(name = "tabelasViaturaBean")
@SessionScoped

public class TabelasViaturaBean implements Serializable{

...
private List<ControleModel>listaDeTodosControleMotorista;    
    private List<ControleModel>listaDeTodosControleViatura;


    public String escolhaBusca(){

        getBuscaControle();

        return null;

    }

    public String getBuscaControle() {
        System.out.println("teste"+getFiltroBuscaControle());
        if(getFiltroBuscaControle()=="m"){
            getListaDeTodosControleMotorista();
        }

        if(getCampoBuscaControle()=="v"){
            getListaDeOcorrenciasViatura();
        }
                    return null;
    }



public List<ControleModel> getListaDeTodosControleMotorista() {
        System.out.println(getFiltroBuscaControle());

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

        List<ControleModel> contrLista = new ArrayList<ControleModel>();



        List<Object[]> objs = controleRN.listaTodosControleMotorista(getCampoBuscaControle());
        List<String> listadeString = new ArrayList<String>();

        for (Object[] array : objs) {  
            for (Object objeto : array) {  
                listadeString.add(objeto.toString());
        }

            ControleModel cm = new ControleModel();
            int codigoO = Integer.parseInt(listadeString.get(0));
            cm.setCodigoControle(codigoO);
            cm.setNomeMotorista2(listadeString.get(1));
            cm.setNomeViatura2(listadeString.get(2));
            cm.setPlacaOperacional2(listadeString.get(3));
            cm.setCor2(listadeString.get(4));
            cm.setDataHoraSaida(listadeString.get(5));
            cm.setDataHoraEntrada(listadeString.get(6));
            cm.setPassageiro(listadeString.get(7));
            cm.setObservacao(listadeString.get(8));
            cm.setNomeLocalViatura(listadeString.get(9));
            contrLista.add(cm);
            listadeString = new ArrayList<String>(); 
        }

            return contrLista;
    }

...

Eu tentei escolher a lista utilizando o if, mas nao esta dando certo...

tenho 2 listas: listaDeTodosControleMotorista e listaDeTodosControleViatura. Tentei fazer assim: if campoFiltroBusca= "m" -> listaDeTodosControleMotorista, if campoFiltroBusca="V" -> listaDeTodosControleViatura.

Quando eu coloco uma das listas direto elas funcionam, isso quer dizer que as listas/consultas estão ok! Alguma ideia para resolver meu problema ? Tem algum jeito + simples de fazer isso?

Obrigado :)

  • Qual o erro exatamente? Não entendi muito bem. Mas de qualquer forma, quando comparamos String em java você deve utilizar o .equals

    matheusgeres   13 de ago 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!

1 resposta

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