IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JSF Java Discussion :

Recherche dans une table (débutant)


Sujet :

JSF Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 18
    Par défaut Recherche dans une table (débutant)
    Bonjour,

    J'ai une table nommée fite avec un champs pays. J'aimerais savoir comment faire pour "filtrer" la table en fonction des pays que je sélectionne dans un selectmanymenu.

    J'arrive à utiliser la fonction filtre de richfaces mais je ne peux isolé qu'un pays et non une liste.

    Pour info j'utilise hibernate, jsf et richfaces.

    Merci de votre aide !

  2. #2
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Par défaut
    tu peux utiliser l'external filtering avec Richfaces

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 18
    Par défaut
    J'ai essayé mais je ne sais pas trop si ce que j'ai fait est correct. J'ai le selectmanylistbox mais pas de table qui s'affiche

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    <f:view>
    <h:form>
        <h:selectManyListbox id="pays" value="#{filteringBean.filtrePays}" size="1">
            <f:selectItems value="#{fite.fiteItemsAvailableSelectManyPays}"/>
            <a4j:support event="onchange" reRender="table, ds2" />
        </h:selectManyListbox>
     
        <rich:dataTable value="#{fite.fiteItems}" var="cap" id="table" rows="40">
        <rich:column filterMethod="#{filteringBean.filterStates}">
        <h:outputText value="#{cap.pays}" />
        </rich:column>
        <f:facet name="footer">
        <rich:datascroller id="ds2" renderIfSinglePage="false"></rich:datascroller>
        </f:facet>
    </rich:dataTable>
    </h:form>
    </f:view>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
     
        private List<String> filtrepays = null;
        private Integer length = 0;
        private boolean temp = false;
        private String paystemp = "";
        private String compare = "";
     
    public boolean filterStates(Object current) {
     
            length = filtrepays.size();
            temp=false;
            for(int i=0; i==length;i++){
                paystemp=filtrepays.get(i);
                compare=current.toString();
          	if (paystemp == compare){
                temp = true;
            }
            }
                return temp;
            }
     
        public void setFiltrePays(List<String> l) {
            this.filtrepays = l;
        }
     
        public List<String> getFiltrePays() {
            return filtrepays;
        }

  4. #4
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Par défaut
    ajoute filterValue :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <rich:column filterMethod="#{filteringBean.filterStates}" filterValue="#{filteringBean.filtrePays}">

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 18
    Par défaut
    J'ai mis le filterValue en plus. MAis j'ai une erreur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    Etat HTTP 500 -
     
    type Rapport d'exception
     
    message
     
    description Le serveur a rencontr� une erreur interne () qui l'a emp�ch� de satisfaire la requ�te.
     
    exception
     
    javax.servlet.ServletException: /fite/Recherche.jsp(25,4) '#{filteringBean.filterStates}' java.lang.NullPointerException
    	javax.faces.webapp.FacesServlet.service(FacesServlet.java:256)
    	org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:178)
    	org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
    	org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:368)
    	org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:495)
    	org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)
    cause m�re
     
    org.apache.jasper.el.JspELException: /fite/Recherche.jsp(25,4) '#{filteringBean.filterStates}' java.lang.NullPointerException
    	org.apache.jasper.el.JspMethodExpression.invoke(JspMethodExpression.java:77)
    	org.richfaces.model.impl.expressive.MethodBindingExpression.evaluate(MethodBindingExpression.java:44)
    	org.richfaces.model.impl.expressive.ObjectWrapperFactory.wrapObject(ObjectWrapperFactory.java:189)
    	org.richfaces.model.ModifiableModel$RowKeyWrapperFactory.wrapObject(ModifiableModel.java:75)
    	org.richfaces.model.impl.expressive.ObjectWrapperFactory$2.convert(ObjectWrapperFactory.java:177)
    	org.richfaces.model.impl.expressive.ObjectWrapperFactory.convertList(ObjectWrapperFactory.java:138)
    	org.richfaces.model.impl.expressive.ObjectWrapperFactory.wrapList(ObjectWrapperFactory.java:175)
    	org.richfaces.model.ModifiableModel.filter(ModifiableModel.java:252)
    	org.richfaces.model.ModifiableModel.modify(ModifiableModel.java:240)
    	org.richfaces.component.UIDataTable.createDataModel(UIDataTable.java:140)
    	org.ajax4jsf.component.UIDataAdaptor.getExtendedDataModel(UIDataAdaptor.java:621)
    	org.ajax4jsf.component.UIDataAdaptor.setRowKey(UIDataAdaptor.java:339)
    	org.richfaces.renderkit.AbstractTableRenderer.encodeTableStructure(AbstractTableRenderer.java:138)
    	org.richfaces.renderkit.html.DataTableRenderer.doEncodeBegin(DataTableRenderer.java:160)
    	org.richfaces.renderkit.html.DataTableRenderer.doEncodeBegin(DataTableRenderer.java:148)
    	org.ajax4jsf.renderkit.RendererBase.encodeBegin(RendererBase.java:100)
    	javax.faces.component.UIComponentBase.encodeBegin(UIComponentBase.java:788)
    	javax.faces.component.UIData.encodeBegin(UIData.java:879)
    	org.ajax4jsf.component.UIDataAdaptor.encodeBegin(UIDataAdaptor.java:1202)
    	javax.faces.component.UIComponent.encodeAll(UIComponent.java:884)
    	javax.faces.render.Renderer.encodeChildren(Renderer.java:137)
    	javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:812)
    	javax.faces.component.UIComponent.encodeAll(UIComponent.java:886)
    	javax.faces.component.UIComponent.encodeAll(UIComponent.java:892)
    	com.sun.faces.application.ViewHandlerImpl.doRenderView(ViewHandlerImpl.java:245)
    	com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:176)
    	org.apache.struts.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:135)
    	org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:100)
    	org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:176)
    	com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:106)
    	com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
    	com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:144)
    	javax.faces.webapp.FacesServlet.service(FacesServlet.java:245)
    	org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:178)
    	org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
    	org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:368)
    	org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:495)
    	org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)
    cause m�re
     
    java.lang.NullPointerException
    	ensam.FilteringBean.filterStates(FilteringBean.java:26)
    	sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    	sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    	sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    	java.lang.reflect.Method.invoke(Method.java:597)
    	org.apache.el.parser.AstValue.invoke(AstValue.java:172)
    	org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:276)
    	org.apache.jasper.el.JspMethodExpression.invoke(JspMethodExpression.java:68)
    	org.richfaces.model.impl.expressive.MethodBindingExpression.evaluate(MethodBindingExpression.java:44)
    	org.richfaces.model.impl.expressive.ObjectWrapperFactory.wrapObject(ObjectWrapperFactory.java:189)
    	org.richfaces.model.ModifiableModel$RowKeyWrapperFactory.wrapObject(ModifiableModel.java:75)
    	org.richfaces.model.impl.expressive.ObjectWrapperFactory$2.convert(ObjectWrapperFactory.java:177)
    	org.richfaces.model.impl.expressive.ObjectWrapperFactory.convertList(ObjectWrapperFactory.java:138)
    	org.richfaces.model.impl.expressive.ObjectWrapperFactory.wrapList(ObjectWrapperFactory.java:175)
    	org.richfaces.model.ModifiableModel.filter(ModifiableModel.java:252)
    	org.richfaces.model.ModifiableModel.modify(ModifiableModel.java:240)
    	org.richfaces.component.UIDataTable.createDataModel(UIDataTable.java:140)
    	org.ajax4jsf.component.UIDataAdaptor.getExtendedDataModel(UIDataAdaptor.java:621)
    	org.ajax4jsf.component.UIDataAdaptor.setRowKey(UIDataAdaptor.java:339)
    	org.richfaces.renderkit.AbstractTableRenderer.encodeTableStructure(AbstractTableRenderer.java:138)
    	org.richfaces.renderkit.html.DataTableRenderer.doEncodeBegin(DataTableRenderer.java:160)
    	org.richfaces.renderkit.html.DataTableRenderer.doEncodeBegin(DataTableRenderer.java:148)
    	org.ajax4jsf.renderkit.RendererBase.encodeBegin(RendererBase.java:100)
    	javax.faces.component.UIComponentBase.encodeBegin(UIComponentBase.java:788)
    	javax.faces.component.UIData.encodeBegin(UIData.java:879)
    	org.ajax4jsf.component.UIDataAdaptor.encodeBegin(UIDataAdaptor.java:1202)
    	javax.faces.component.UIComponent.encodeAll(UIComponent.java:884)
    	javax.faces.render.Renderer.encodeChildren(Renderer.java:137)
    	javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:812)
    	javax.faces.component.UIComponent.encodeAll(UIComponent.java:886)
    	javax.faces.component.UIComponent.encodeAll(UIComponent.java:892)
    	com.sun.faces.application.ViewHandlerImpl.doRenderView(ViewHandlerImpl.java:245)
    	com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:176)
    	org.apache.struts.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:135)
    	org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:100)
    	org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:176)
    	com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:106)
    	com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
    	com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:144)
    	javax.faces.webapp.FacesServlet.service(FacesServlet.java:245)
    	org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:178)
    	org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
    	org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:368)
    	org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:495)
    	org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)
    note La trace compl�te de la cause m�re de cette erreur est disponible dans les fichiers journaux de Apache Tomcat/6.0.18.
     
    Apache Tomcat/6.0.18

  6. #6
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Par défaut
    c'est un NullPointerException, peut être filtrepays est null, tu trouvera bien la ligne qui ne va pas en débuguant ton code.

    Il n'ya pas besoin d'itérer su r tous les éléments, c'est richfaces qui compare ligne par ligne. Et pour comparer deux chaines, on n'utilise pas == mais equals.

    La méthode doit ressembler à :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    public boolean filterPays(Object current) {
    PaysBean currentResult = (PaysBean) current;
     
    if (paysValue.length() == 0) {
    	return true;
    }
    if (currentResult.getPaysName().toLowerCase().equals(paysValue.toLowerCase())) {
     
    	return true;
     
    } else {
    	return false;
    }
     
    	}

Discussions similaires

  1. [SQL] recherche dans une table
    Par H-bil dans le forum PHP & Base de données
    Réponses: 11
    Dernier message: 06/06/2006, 11h26
  2. Recherche dans une table via un formulaire
    Par Z[ee]k dans le forum Access
    Réponses: 3
    Dernier message: 05/06/2006, 11h14
  3. [VB6] Erreur durant la recherche dans une table
    Par quaife dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 03/04/2006, 17h21
  4. Recherche dans une table
    Par Fredo67 dans le forum Access
    Réponses: 2
    Dernier message: 28/02/2006, 17h21
  5. recherche dans une table Access en ASP
    Par D-D dans le forum ASP
    Réponses: 3
    Dernier message: 09/06/2004, 10h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo