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 :

Déclencher une méthode quand la valeur d'un champ d'une base de données est changée


Sujet :

JSF Java

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mai 2006
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 75
    Points : 37
    Points
    37
    Par défaut Déclencher une méthode quand la valeur d'un champ d'une base de données est changée
    Bonjour,

    Je travaille avec JSF/Myface. Je veux déclencher l'exécution d'une méthode d'un bean quand la valeur d'un champ d'une table de ma base de donnée est changée.
    Comment vais je faire?

  2. #2
    Nouveau membre du Club
    Inscrit en
    Mai 2006
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 75
    Points : 37
    Points
    37
    Par défaut
    Je modifie un peu ma question
    Je veux déclencher l'exécution d'une méthode d'un bean quand la valeur d'un champ d'une table de ma base de donnée est changée ou quand un inputText est renseigner.
    Comment vais je faire?

  3. #3
    Membre actif Avatar de rushtakn
    Inscrit en
    Mai 2006
    Messages
    213
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 213
    Points : 240
    Points
    240
    Par défaut
    Citation Envoyé par AmFaye Voir le message
    Je veux déclencher l'exécution d'une méthode d'un bean quand la valeur d'un champ d'une table de ma base de donnée est changée
    Je suppose qu'il faudrait que tu précises comment cette valeur est changée parce que je ne comprends pas ou est le probleme. Tu dois bien avoir une méthode qui modifie ce champ dans ta bdd, donc au moment ou tu appelles cette méthode tu peux également appeler la méthode du bean que tu veux exécuter ?

    Pour l'inputText, tu peux vérifier que ton champ est renseigné dans l'action de validation du formulaire et appeler ta méthode à ce moment.

  4. #4
    Nouveau membre du Club
    Inscrit en
    Mai 2006
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 75
    Points : 37
    Points
    37
    Par défaut
    La méthode que je veux exécuter était liée à un bouton de mon interface. Quand un utilisateur clique sur ce bouton c'est à ce moment que la méthode est exécutée et la page suivante est affichée en changeant les booleéns qui sont passés aux attributs rendered.

    Maintenant je veux que si la valeur d'un champ d'une de mes tables change ou d'un champ inputText de l'interface change que ma méthode soit déclenchée et que la pages suivante qui auparavant s'affichait quant un utilisateur clique sur le bouton, s'affiche sans l'intervention de l'utilisateur sur le bouton.

  5. #5
    Membre actif Avatar de rushtakn
    Inscrit en
    Mai 2006
    Messages
    213
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 213
    Points : 240
    Points
    240
    Par défaut
    Je pense que pour la modification de la valeur de la table tu prends le probleme du mauvais coté. La modification est nécessairement provoquée par une action de l'utilisateur sur l'interface, c'est à ce moment que tu dois exécuter le méthode que tu veux. La comme tu expliques les choses j'ai l'impression que tu veux détecter la modification du champ dans ta bdd, puis remonter l'evenement jusqu'à l'interface, je ne suis pas sur que ça soit faisable.

    Sinon, concernant la modification du textInput, de ce que j'ai compris tu veux simplement valider ton formulaire sans avoir à cliquer sur un bouton. Tu peux faire ça en ajax avec par exemple un a4j:support qui appelera la méthode de ton bean selon l'evenement que tu veux (onblur, onchange...)

  6. #6
    Nouveau membre du Club
    Inscrit en
    Mai 2006
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 75
    Points : 37
    Points
    37
    Par défaut
    rushtakn je peux avoir un exemple d'utilisation de a4j:support ? Je ne connais bien ajax.

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    426
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Tunisie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 426
    Points : 183
    Points
    183
    Par défaut
    Salut,
    Voila un exemple de a4j:support dans le demo de richfaces :
    http://livedemo.exadel.com/richfaces...port&tab=usage
    There is more than one way to do it

  8. #8
    Membre actif Avatar de rushtakn
    Inscrit en
    Mai 2006
    Messages
    213
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 213
    Points : 240
    Points
    240
    Par défaut
    Tu utilises richfaces ? si non il faudra que tu telecharges les jar pour avoir accès à ce tag.
    La doc pour a4j:support c'est par ici.

    Dans ton cas, ça doit donner un code du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <h:inputText value="#{bean.value}">
        <a4j:support event="onblur" action="#{bean.action}" />
    </h:inputText>
    Quand l'utilisateur perdra le focus son ton champs texte, la methode action du bean bean déclaré dans ton faces config sera appelée. Le fonctionnement est le meme que pour le paramètre action d'un commandButton.

  9. #9
    Nouveau membre du Club
    Inscrit en
    Mai 2006
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 75
    Points : 37
    Points
    37
    Par défaut
    rushtakn j'ai essayé votre code mais cela ne fonctionne pas.

    J'ai téléchargé les jar de richfaces(richface-api,richfaces-impl,richfaces-ui) vérsion 3.3.1.
    J'utilise Myface 1.2.

    Est ce qu'il y a des configurations à faire dans le web.xml?

  10. #10
    Nouveau membre du Club
    Inscrit en
    Mai 2006
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 75
    Points : 37
    Points
    37
    Par défaut
    Bonjour
    Y a t il pas quelqu'un qui peut m'aider à utiliser a4j:support?

  11. #11
    Membre régulier Avatar de VirageGroup
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 81
    Points : 95
    Points
    95
    Par défaut
    Bonjour,

    Oui, il y a du paramétrage à effectuer dans le fichier web.xml.

    Voir http://docs.jboss.org/richfaces/late...GettingStarted

    VG
    Project Monitor : Solution de pilotage de projets

  12. #12
    Nouveau membre du Club
    Inscrit en
    Mai 2006
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 75
    Points : 37
    Points
    37
    Par défaut
    salut,
    VirageGroup j'ai effectué la même configuration que celle qui est sur le site que vous m'avez indiqué mais j'ai ces messages d'erreurs:
    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
    type Rapport d'exception
     
    message
     
    description Le serveur a rencontr� une erreur interne () qui l'a emp�ch� de satisfaire la requ�te.
     
    exception
     
    java.lang.NullPointerException
    	java.lang.String.startsWith(Unknown Source)
    	java.lang.String.startsWith(Unknown Source)
    	org.ajax4jsf.webapp.WebXml.getFacesResourceKey(WebXml.java:189)
    	org.ajax4jsf.webapp.WebXml.getFacesResourceKey(WebXml.java:222)
    	org.ajax4jsf.resource.InternetResourceService.serviceResource(InternetResourceService.java:139)
    	org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:488)
     
    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.

  13. #13
    Nouveau membre du Club
    Inscrit en
    Mai 2006
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 75
    Points : 37
    Points
    37
    Par défaut
    Bon soir à tous je suis revenu. Bonne et heureuse année 2010 à tous.
    J'ai toujours des soucie pour l'utilisation d'Ajax4jsf avec Myfaces 1.2.6.
    J'ai téléchargé les jar:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    richfaces-api-3.3.1.GA.jar  ; richfaces-impl-3.3.1.GA.jar  ; richfaces-ui-3.3.1.GA.jar
    .

    Dans mon web.xml j'ai effectué la configurattion suivante:
    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
    <context-param>
     
       <param-name>org.richfaces.SKIN</param-name>
     
    	   <param-value>blueSky</param-value>
     
    	</context-param>
     
     
     
    	<context-param>
     
    	      <param-name>org.richfaces.CONTROL_SKINNING</param-name>
     
    	      <param-value>enable</param-value>
     
    	</context-param>
      	<filter>
     
            <display-name>Ajax4jsf Filter</display-name>
     
            <filter-name>ajax4jsf</filter-name>
     
            <filter-class>org.ajax4jsf.Filter</filter-class>
     
          </filter>
     
          <filter-mapping>
     
            <filter-name>ajax4jsf</filter-name>
     
            <servlet-name>Faces Servlet</servlet-name>
     
            <dispatcher>REQUEST</dispatcher>
     
            <dispatcher>FORWARD</dispatcher>
     
            <dispatcher>INCLUDE</dispatcher>
     
          </filter-mapping>
    .

    J'ai les messages d'erreurs suivant quand j'utilise le composant support:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    java.lang.NullPointerException
    	at org.apache.catalina.connector.MapperListener.destroy(MapperListener.java:165)
    	at org.apache.catalina.connector.Connector.stop(Connector.java:1179)
    	at org.apache.catalina.core.StandardService.stop(StandardService.java:593)
    	at org.apache.catalina.core.StandardServer.stop(StandardServer.java:744)
    	at org.apache.catalina.startup.Catalina.stop(Catalina.java:628)
    	at org.apache.catalina.startup.Catalina$CatalinaShutdownHook.run(Catalina.java:671)
    .

    Quelqu'un peut m'aider?

  14. #14
    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
    Points : 5 059
    Points
    5 059
    Par défaut
    Salut, et bonne année à toi aussi .
    tu as la trace de la cause de l'exception?

    ça arrive au démarrage du serveur ou à l'exécution?

  15. #15
    Nouveau membre du Club
    Inscrit en
    Mai 2006
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 75
    Points : 37
    Points
    37
    Par défaut
    ça arrive lors de l'exécution. Quand je tape l'url de l'application. C'est ceci que j'ai
    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
    type Rapport d'exception
     
    message 
     
    description Le serveur a rencontr� une erreur interne () qui l'a emp�ch� de satisfaire la requ�te.
     
    exception 
     
    java.lang.NullPointerException
    	java.lang.String.startsWith(Unknown Source)
    	java.lang.String.startsWith(Unknown Source)
    	org.ajax4jsf.webapp.WebXml.getFacesResourceKey(WebXml.java:189)
    	org.ajax4jsf.webapp.WebXml.getFacesResourceKey(WebXml.java:222)
    	org.ajax4jsf.resource.InternetResourceService.serviceResource(InternetResourceService.java:139)
    	org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:488)
     
     
    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.

  16. #16
    Nouveau membre du Club
    Inscrit en
    Mai 2006
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 75
    Points : 37
    Points
    37
    Par défaut
    Salut
    Quelqu'un peut il m'aider?

  17. #17
    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
    Points : 5 059
    Points
    5 059
    Par défaut
    Citation Envoyé par AmFaye Voir le message
    Salut
    Quelqu'un peut il m'aider?
    le code de ta page? mais le problème survient que lorsque tu utilise a4j:supoprt?

  18. #18
    Nouveau membre du Club
    Inscrit en
    Mai 2006
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 75
    Points : 37
    Points
    37
    Par défaut
    Effectivement. L'erreur survient que j'utilise cette balise. Voici ma page jsp. C'était pour un teste
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <%@ taglib uri="https://ajax4jsf.dev.java.net/ajax" prefix="a4j"%>
     
     
    <h:inputText id="myinput" value="#{depotretraitBean.num_telephone}">
        <a4j:support event="onkeyup" reRender="outtext" />
    </h:inputText>
    <h:outputText id="outtext" value="#{depotretraitBean.num_telephone}" />

  19. #19
    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
    Points : 5 059
    Points
    5 059
    Par défaut
    ce n'est pas le bon lien pour les tag libs a4j:



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <%@ taglib uri="http://richfaces.org/a4j" prefix="a4j"%>

  20. #20
    Nouveau membre du Club
    Inscrit en
    Mai 2006
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 75
    Points : 37
    Points
    37
    Par défaut
    J'ai changé le tag lib mais j'ai toujours la même erreur.
    Voici mon fichier 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
    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
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
      <display-name>mpayement</display-name>
     
    	<context-param>
        	<param-name>org.apache.myfaces.ERROR_HANDLING</param-name>
        	<param-value>false</param-value>
      	</context-param> 	
    	 <!-- Filtre pour l'utilisation d'ajax -->
      	<context-param>
     
       <param-name>org.richfaces.SKIN</param-name>
     
    	   <param-value>blueSky</param-value>
     
    	</context-param>
     
     
     
    	<context-param>
     
    	      <param-name>org.richfaces.CONTROL_SKINNING</param-name>
     
    	      <param-value>enable</param-value>
     
    	</context-param>
      	<filter>
     
            <display-name>Ajax4jsf Filter</display-name>
     
            <filter-name>ajax4jsf</filter-name>
     
            <filter-class>org.ajax4jsf.Filter</filter-class>
     
          </filter>
     
          <filter-mapping>
     
            <filter-name>ajax4jsf</filter-name>
     
            <servlet-name>Faces Servlet</servlet-name>
     
            <dispatcher>REQUEST</dispatcher>
     
            <dispatcher>FORWARD</dispatcher>
     
            <dispatcher>INCLUDE</dispatcher>
     
          </filter-mapping>
     
    	<session-config>
      		<session-timeout>1440</session-timeout>
     	</session-config>
     	<!-- Filtre pour l'upload de fichier -->
    	<filter>
    		<filter-name>MyFacesExtensionsFilter</filter-name>
    		<filter-class>org.apache.myfaces.webapp.filter.ExtensionsFilter</filter-class>
    	    <init-param>
    	    	<description>Set the size limit for uploaded files.
                           Format: 10 - 10 bytes
                          10k - 10 KB
                          10m - 10 MB
                          1g - 1 GB
                </description>
    	        <param-name>uploadMaxFileSize</param-name>
    	        <param-value>100m</param-value>	        
    	    </init-param>	    
    	</filter>
     
    	<!-- Filtre pour l'exportation en PDF -->
    	<filter>
    	    <filter-name>ResponseOverrideFilter</filter-name>
    	    <filter-class>org.displaytag.filter.ResponseOverrideFilter</filter-class>
    	</filter>
    	<filter-mapping>
    	    <filter-name>ResponseOverrideFilter</filter-name>
    	    <url-pattern>*.jsp</url-pattern>
    	    <url-pattern>/faces/*</url-pattern>
        </filter-mapping>
        
    	<!-- extension mapping for adding <script/>, <link/>, and other resource tags to JSF-pages  -->
    	<filter-mapping>
    	    <filter-name>MyFacesExtensionsFilter</filter-name>
    	    <!-- servlet-name must match the name of your javax.faces.webapp.FacesServlet entry -->
    	    <servlet-name>Faces Servlet</servlet-name>
    	</filter-mapping>
     
    	<!-- extension mapping for serving page-independent resources (javascript, stylesheets, images, etc.)  -->
    	<filter-mapping>
    	    <filter-name>MyFacesExtensionsFilter</filter-name>
    	    <url-pattern>/faces/myFacesExtensionResource/*</url-pattern>
    	</filter-mapping>
     
    	<!--  ************************* -->
      
      <welcome-file-list>
      	<welcome-file>index.html</welcome-file>
        <welcome-file>index.htm</welcome-file>
        <welcome-file>index.jsp</welcome-file>
        <welcome-file>default.html</welcome-file>
        <welcome-file>default.htm</welcome-file>
        <welcome-file>default.jsp</welcome-file>
      </welcome-file-list>
      
      <context-param>
    	<param-name>javax.faces.STATE_SAVING_METHOD</param-name>
    	<param-value>all</param-value>
      </context-param>
     	
      <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>
        <url-pattern>*.jsf</url-pattern>
      </servlet-mapping>
      
    </web-app>

Discussions similaires

  1. [MySQL] Filtrer des éléments d'une liste selon plusieures valeurs d'un champ d'une table bdd
    Par amdawb dans le forum PHP & Base de données
    Réponses: 26
    Dernier message: 08/02/2015, 15h59
  2. Réponses: 1
    Dernier message: 08/12/2010, 12h04
  3. Réponses: 1
    Dernier message: 31/08/2009, 22h48
  4. Réponses: 3
    Dernier message: 02/01/2007, 13h53
  5. passer la valeur d'un return dans une méthode
    Par belukrin dans le forum Langage
    Réponses: 1
    Dernier message: 25/03/2006, 06h58

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