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 :

[RichFaces+JSF+Facelets] Problème d'ajax


Sujet :

JSF Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2008
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2008
    Messages : 79
    Par défaut [RichFaces+JSF+Facelets] Problème d'ajax
    Bonjour,

    Je crois que j'ai un problème de configuration au niveau de mon application. J'essaye d'afficher des données dans une extendedDataTable, avec l'option sortOrder sur les colonnes. J'aimerais aussi pourvoir utiliser l'option hide/show des colonnes via les menus, qui sont à droite du nom des colonnes.

    Le problème c'est que aucunes des fonctionnalités ne fonctionne. Lorsque je clique sur une colonne pour effectuer le tri, la table se rafraichie et le tri n'est pas effectué. Et pour le hide and show des colonnes, lorsque je veux afficher une nouvelle colonne, ça marche. Mais quand je veux en afficher une de plus, elle s'affiche, mais en remplaçant une autre. Je ne peux que avoir deux colonnes affichées en même temps.

    Voila le code source de ma page xhtml :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    <h:form>
        <rich:extendedDataTable value="#{MainPage.listTable}" var="list" width="50%" id="dabaseTable" columnClasses="col">
            <f:facet name="header">
                <h:outputText value="#{MainPage.tableName}"/>
            </f:facet>
            <rich:columns sortBy="#{list[i]}" sortOrder="#{MainPage.sortOrder}" value="#{MainPage.columnsName}" label="#{MainPage.columnsName[i]}" var="columnName" index="i" visible="#{MainPage.nameColumnName == columnName ? 'true' : 'false'}">
            <f:facet name="header">
                <h:outputText value="#{columnName}"/>
            </f:facet>
                <h:outputText value="#{list[i]}"/>
            </rich:columns>
        </rich:extendedDataTable>
    </h:form>
    Et voici mon web.xml :

    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
     
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
        <servlet>
            <servlet-name>Faces Servlet</servlet-name>
            <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
            <load-on-startup>1</load-on-startup>
        </servlet>
        <servlet-mapping>
            <servlet-name>Faces Servlet</servlet-name>
            <url-pattern>/faces/*</url-pattern>
        </servlet-mapping>
        <session-config>
            <session-timeout>
                30
            </session-timeout>
        </session-config>
        <welcome-file-list>
            <welcome-file>faces/login.jsp</welcome-file>
        </welcome-file-list>
        <!-- Facelets pramas -->
        <context-param>
            <param-name>facelets.BUILD_BEFORE_RESTORE</param-name>
            <param-value>true</param-value>
        </context-param>
        <context-param>
            <param-name>com.sun.faces.validateXml</param-name>
            <param-value>true</param-value>
        </context-param>
        <context-param>
            <param-name>javax.faces.DEFAULT_SUFFIX</param-name>
            <param-value>.xhtml</param-value>
        </context-param>
        <context-param>
            <param-name>javax.faces.DEVELOPMENT</param-name>
            <param-value>false</param-value>
        </context-param>
        <context-param>
            <param-name>javax.faces.SKIP_COMMENTS</param-name>
            <param-value>true</param-value>
        </context-param>
    	<!-- Richfaces Configuration-->
        <context-param>
            <param-name>org.richfaces.SKIN</param-name>
            <param-value>wine</param-value>
        </context-param>
        <context-param>
            <param-name>org.ajax4jsf.VIEW_HANDLERS</param-name>
            <param-value>com.sun.facelets.FaceletViewHandler</param-value>
        </context-param>
        <filter>
            <display-name>RichFaces Filter</display-name>
            <filter-name>richfaces</filter-name>
            <filter-class>org.ajax4jsf.Filter</filter-class>
        </filter>
        <filter-mapping>
            <filter-name>richfaces</filter-name>
            <servlet-name>Faces Servlet</servlet-name>
            <dispatcher>REQUEST</dispatcher>
            <dispatcher>FORWARD</dispatcher>
            <dispatcher>INCLUDE</dispatcher>
        </filter-mapping>
    </web-app>
    Alors pour moi ce problème viens de l'ajax qui n'arrive pas à bien fonctionner. D'ailleurs j'ai été obligé de mettre ce paramètre dans le web.xml : facelets.BUILD_BEFORE_RESTORE=true, sinon les requetes Ajax ne marchaient pas du tout. J'avais un warning :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    WARNING: PWC4011: Unable to set request character encoding to UTF-8 from context /frameworkproject-war, because request parameters have already been read, or ServletRequest.getReader() has already been called
    WARNING: facelets.RECREATE_VALUE_EXPRESSION_ON_BUILD_BEFORE_RESTORE is set to 'true' but facelets.BUILD_BEFORE_RESTORE is set to 'false' or unset. To use facelets.RECREATE_VALUE_EXPRESSION_ON_BUILD_BEFORE_RESTORE you must also set facelets.BUILD_BEFORE_RESTORE to 'true'!
    Voila j'espère que je ne n'ai rien oublié, et merci d'avance pour vos réponses.

  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
    pourquoi utiliser ..??

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      <h:outputText value="#{list[i]}"/>
    regarde l'exemple de Richfaces de la dataTable, il est clair..

    tu dois avoir quelque chose comme:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
      <h:outputText value="#{list.name}"/>
    Si l'objet que contient la liste a une property name.

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2008
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2008
    Messages : 79
    Par défaut
    Justement ça me me faciliterais bien la tache , mais le problème c'est que je doit afficher le contenue d'une base de donnée sans connaitre son architecture. Donc je suis obligé d'utiliser des listes et non pas des Objects.

    Alors ce qui est bizarre c'est que l'order by fonctionne très bien quand je ne n'utilise pas les facelets. Par contre l'attribut "visible" du tag columns n'est plus utilisable, j'ai une erreur qui indique qu'il n'y a pas de setter pour l'attribut.

    Là je suis à cour d'idée pour trouvé le souci.

  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
    dataTable prend forcement une liste d'objets, que contient la liste?? des objets de type String?

  5. #5
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2008
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2008
    Messages : 79
    Par défaut
    Oui, que des objects de type String. Mais l'affichage ce fait très bien, je ne vois pas ou tu veux en venir ?

  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
    Dans ce cas, il suffit d'utiliser:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     <rich:columns sortBy="#{list}" sortOrder="#{MainPage.sortOrder}" value="#{MainPage.columnsName}" label="#{MainPage.columnsName[i]}" var="columnName" index="i" visible="#{MainPage.nameColumnName == columnName ? 'true' : 'false'}">
            <f:facet name="header">
                <h:outputText value="#{columnName}"/>
            </f:facet>
                <h:outputText value="#{list}"/>
            </rich:columns>

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [RichFaces+jsf+ajax] Navigation Tree avec rich:tree
    Par BigMac.com dans le forum JSF
    Réponses: 0
    Dernier message: 08/02/2011, 14h57
  2. JSF, Facelets et Richfaces
    Par omarcisses dans le forum JSF
    Réponses: 9
    Dernier message: 01/10/2010, 09h35
  3. Réponses: 1
    Dernier message: 31/08/2009, 09h36
  4. Réponses: 1
    Dernier message: 27/07/2009, 09h20
  5. JSF + Facelets + RichFaces
    Par gufra dans le forum JSF
    Réponses: 14
    Dernier message: 18/02/2009, 16h37

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