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]Problemes avec ValueChangeListener sous IE


Sujet :

JSF Java

  1. #1
    Membre averti
    Inscrit en
    Mai 2008
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 39
    Par défaut [Resolu][richFaces]Problemes avec ValueChangeListener sous IE
    bonjour ,
    j'ai un problème et je n'arrive pas à trouver la solution.
    j'ai créé un composant jsf à partir de composant richafaces rich:inplaceinput,
    ce composant est un label modifiable,à chaque changement de valeur de label on modifie sa valeur correspendante dans la base de données .
    Le code source de composant:
    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
     
    <ui:composition> 
        <c:if test="#{!empty sessionScope['edit']}"> 
            <h:form id="#{id}form1"> 
     
                <rich:inplaceInput id="#{id}Input" value="#{bundle[key]}" valueChangeListener="#{i18nBean.update}" 
                                   onchange="submit();"> 
                    <f:attribute name="key" value="#{key}"/> 
                    <f:attribute name="bundleName" value="#{bundleName}"/> 
                </rich:inplaceInput> 
            </h:form> 
        </c:if> 
     
        <c:if test="#{empty sessionScope['edit']}"> 
            <h:outputLabel id="#{id}Label" value="#{bundle[key]}"> 
                <ui:insert/> 
            </h:outputLabel> 
        </c:if> 
     
    </ui:composition>
    et le code source de managedBean qui traite l'evenement valuechange
    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
     
    public class I18nBean { 
     
        private ILabelService labelService; 
     
      /** 
      *méthode traitant l'evenement ValueChangeEvent  
      */ 
        public void update(ValueChangeEvent event) { 
    // récuperation de deux attributs key et bundleName
            FacesContext fc = FacesContext.getCurrentInstance(); 
            String locale = fc.getExternalContext().getRequestLocale().toString(); 
            UIComponent component = (UIComponent) event.getSource(); 
            String key = (String) component.getAttributes().get("key"); 
            String bundleName = (String)    component.getAttributes().get("bundleName"); 
     // mettre a jour le label dans la base de donnée
            if (ValidatorUtil.isNotBlank(key)) { 
                this.getLabelService().create(key, locale, event.getNewValue().toString()); 
            } 
     
            ResourceBundle bundle = fc.getApplication().getResourceBundle(fc, bundleName); 
            if (bundle instanceof AbstractHibernateResourceBundle) { 
                AbstractHibernateResourceBundle hibernateResourceBundle = (AbstractHibernateResourceBundle)    bundle; 
     
    // mettre a jour la liste des labels
                hibernateResourceBundle.updateLabel(key, event.getNewValue().toString()); 
            } 
        }
    et voila enfin la page de test:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    head> 
        <title>Page de Test</title> 
    </head> 
    <body> 
    <h:panelGrid> 
        <h:form> 
            <h:commandLink value="Editer" actionListener="#{sessionBean.goEditMode}"/> 
            <h:commandLink value="Prévisualiser" actionListener="#{sessionBean.quitEditMode}"/> 
        </h:form> 
        <i18n:label id="label1" key="key4" bundle="#{kmji18n}" bundleName="kmji18n"/> 
    </h:panelGrid> 
    </body> 
    </html>
    le probleme est que sa fonctionne trés bien sur FF ,par contre en utillisant IE7 le formulaire n'est jamais submitté et l'evenement ValueChangeEvent n'est jamais traité.
    j'ai passé beaucoup de temps sans avancer beaucoup.
    J'espere que vous avez une idée.

    Merci d'avance

  2. #2
    Membre averti
    Inscrit en
    Mai 2008
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 39
    Par défaut
    j'ai enfin pu résoudre mon probléme

    il suffit d'ajouter un document.getElementById('identifiant ').component.save() avant de submitter le formulaire et tout fonctionne bien.
    le nouveau template qui marche bien:
    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
     
    <ui:composition>
        <c:if test="#{!empty sessionScope['edit']}">
            <h:form id="#{id}Form">
                <rich:inplaceInput id="#{id}Input" value="#{bundle[key]}"
                                   valueChangeListener="#{i18nBean.update}" onchange="document.getElementById('#{id}Form:#{id}Input').component.save();submit();">
                    <f:attribute name="key" value="#{key}"/>
                    <f:attribute name="bundleName" value="#{bundleName}"/>
                </rich:inplaceInput>
            </h:form>
        </c:if>
        <c:if test="#{empty sessionScope['edit']}">
            <h:outputLabel id="#{id}Label" value="#{bundle[key]}">
                <ui:insert/>
            </h:outputLabel>
        </c:if>
    </ui:composition>

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

Discussions similaires

  1. probleme avec to_number sous access
    Par lassmust dans le forum Access
    Réponses: 1
    Dernier message: 01/12/2005, 14h18
  2. Probleme avec height sous IE.
    Par Death83 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 21/10/2005, 22h20
  3. Problèmes avec Hibernate (sous Eclipse)
    Par Pierric dans le forum Hibernate
    Réponses: 2
    Dernier message: 07/04/2005, 14h35
  4. Problème avec GLUT sous borland c++ builder X
    Par hiko-seijuro dans le forum GLUT
    Réponses: 1
    Dernier message: 04/11/2004, 12h47
  5. Problème avec phpize sous debian woody
    Par nipepsi dans le forum Debian
    Réponses: 3
    Dernier message: 09/09/2004, 11h54

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