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 :

Mise à jour d'une liste d'Integer dans rich:datatable


Sujet :

JSF Java

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 10
    Points : 7
    Points
    7
    Par défaut Mise à jour d'une liste d'Integer dans rich:datatable
    Bonjour,
    J'ai un problème pour mettre à jour une liste d'Integer avec une page JSF.

    Je récupère ma liste dans la page jsf comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
                        <rich:column rendered="#{link.selected}" id="amountList">
                            <rich:dataTable var="amount" value="#{link.amounts}">
                                <rich:column>
                                    <h:inputText id="suggAmount" value="#{amount}" size="10">
                                    </h:inputText>
                                </rich:column>
                            </rich:dataTable>
                         </rich:column>
                        </rich:column>
    J'ai essayé d'utiliser un a4j:support pour faire un rerender de la liste avec un event onblur, mais rien n'est mis à jour, les éléments de la liste sont à 0.
    Dans le bean:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    private List<Integer> amounts;
     
    public URL() {
    	this.amounts = new ArrayList<Integer>();
    }
     
    public void addAmount() {
    	this.getAmounts().add(new Integer(0));
    }
    Les ajouts de montants avec addAmount se font bien, mais pas moyen de les modifier.

    J'aimerais juste que lorsque l'on perd le focus sur l'un des inputs contenant un montant, celui ci se mette à jour dans le bean.

  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
    Points : 5 059
    Points
    5 059
    Par défaut
    ton bean est dans quel scope??

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 10
    Points : 7
    Points
    7
    Par défaut
    Mon bean est en scope session.
    mais j'ai d'autres propriétés qui se mettent bien à jour.
    Voilà le code avec le a4j:support
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <h:inputText id="suggAmount" value="#{amount}" size="10">
         <a4j:support event="onblur" reRender="suggAmount" />
    </h:inputText>
    Je vois avec firebug que la valeur est bien renseignée et envoyée
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    j_id5:j_id7:0:j_id41:0:j_...	j_id5:j_id7:0:j_id41:0:j_id43
    j_id5:j_id7:0:j_id41:0:su...	7897845

  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
    Points : 5 059
    Points
    5 059
    Par défaut
    dans la première dataTable dans le reRendre ajoute l'id de la deuxième.

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 10
    Points : 7
    Points
    7
    Par défaut
    J'ai essayé avec le reRender comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <rich:dataTable var="link" value="#{search.links}" id="linkTable" reRender="amountTable">
    mais sans succés

    J'ai essayé avec la mise à jour d'un Integer et non d'une liste d'Integer et ça a très bien fonctionné:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <rich:column rendered="#{link.selected}">
       <h:inputText id="amount" value="#{link.amount}" size="10">
           <f:convertNumber type="number" maxFractionDigits="2" minFractionDigits="2" />
           <a4j:support event="onblur" reRender="amount" />
        </h:inputText>
     </rich:column>

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 10
    Points : 7
    Points
    7
    Par défaut
    Bon, j'ai remplacé la liste d'Integer par une liste d'objet Amount que j'ai créé:
    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
    public class Amount {
        private int value;
     
        /**
         * @param value
         *           the value to set
         */
        public void setValue(int value) {
            this.value = value;
        }
     
        /**
         * @return the value
         */
        public int getValue() {
            return value;
        }
    }
    Avec cette solution ça fonctionne et comme je vais y rajouter des propriétés ça ira. Par contre je trouve ça tout de même bizarre qu'avec des Integer ça ne fonctionne pas.

Discussions similaires

  1. Réponses: 4
    Dernier message: 26/02/2013, 11h58
  2. Mise à jour d'une liste à partir d'une sélection dans une autre liste
    Par kilou88 dans le forum Interfaces Graphiques en Java
    Réponses: 9
    Dernier message: 10/11/2011, 13h22
  3. [AC-2003] Mise à jour d'une liste sur saisie dans une textbox
    Par tarnx dans le forum IHM
    Réponses: 2
    Dernier message: 30/03/2010, 19h05
  4. Réponses: 6
    Dernier message: 16/09/2009, 23h43
  5. Réponses: 5
    Dernier message: 27/08/2006, 14h18

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