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 :

DataTable - modification des données


Sujet :

JSF Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de Elwe31
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    487
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 487
    Par défaut DataTable - modification des données
    Bonjour a tous.

    Je vais essayer de vous expliquer mon probleme...
    Je suis debutant, j'ai donc recuperé les exemples de MyFaces(Tomahawk Version 1.1.7, using MyFaces 1.2) et installé sur le serveur Tomcat (V6.0)

    Dans ces exemples lorsque que j'ouvre( par exemple) la page pagedSortTable.jsf et que je modifie les données dans le champ "couleur" les données modifier sont sauvegardées.

    Si je fais la meme chose an creant une autre page, avec mes beans, declarés dans face-config... les données modifiées par l'utilisateur ne sont pas recuperé...

    Je n'ai le probleme qu'avec les DataTables, dans mes formulaires je n'ai aucun souci, je recupere les données saisies et les sauvegardes dans ma base???

    Si quelqu'un a compris, peut-il m'expliquer ou me dire ou je peux trouver une expliquation ???

    Merci d'avance.

  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
    je pense que là..un bout de code peut être plus parlant..

  3. #3
    Membre éclairé Avatar de Elwe31
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    487
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 487
    Par défaut
    la page jsp :
    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
     
      <h:form>
    <t:dataTable id="_tab"
                      var="car"
                      value="#{unitCoeffForm._tab}"
                      preserveDataModel="true"
                      rows="10"
                      preserveSort="true">
            <h:column>
                <f:facet name="header"></f:facet>
                <h:outputText value="#{car._unitId}" />
            </h:column>
            <h:column>
                <f:facet name="header">
                    <t:commandSortHeader columnName="_unitName" arrow="true" immediate="false">
                        <h:outputText value="TYPE" />
                    </t:commandSortHeader>
                </f:facet>
                <h:outputText value="#{car._unitName}" />
            </h:column>
            <h:column>
                <f:facet name="header">
                    <t:commandSortHeader columnName="_coeffAttack1" arrow="true" immediate="false">
                        <h:outputText value="1" />
                    </t:commandSortHeader>
                </f:facet>
                <h:inputText value="#{car._coeffAttack1}" >
                    <f:validateLength maximum="10"/>
                </h:inputText>
            </h:column>
        </t:dataTable>
            <t:panelGroup>
                    <h:commandButton rendered="#{unitCoeffForm.modeEcriture}" action="#{unitCoeffForm.save}" value="Sauvegarder" immediate="true"/>
                    <f:verbatim>&nbsp;</f:verbatim>
                    <h:commandButton action="cancel" immediate="true" value="Cancel" />
            </t:panelGroup>
     
        </h:form>
    le bean :
    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
     
    public class UnitCoeffForm implements java.io.Serializable   {
    	/**
             * 
             */
    	private static final long serialVersionUID = 1L;
    	....
    	....
    	...
     
    	private List <UnitCoeffTabRow> _unitCoeffTab;
     
    	public UnitCoeffForm(){
    		System.out.println("Init - UnitCoeffForm");
    	}
     
     
    	private void createDataAttack(UnitCoeffs us){
    		this._unitCoeffTab = new ArrayList <UnitCoeffTabRow>();
    		TypeUnits tu = getListTypeUnits();
    		if (us!=null){
    			List <UnitCoeff> ucs = us.get_UnitCoeffAttaks();
     
    			if (ucs.size()>0){
    				for (int i=0;i<ucs.size();i++){
    					UnitCoeff temp = ucs.get(i);
    					Integer id = temp.get_tbUCTypeDef();
    					String desc = tu.getTypeUnit(temp.get_tbUCTypeDef()).get_tbTypeUnitDescription();
    					int j = unitExiste(id);
    					if (j>=0){
    						_unitCoeffTab.get(j).set_coeffAttack(temp.get_tbUCNbHexagone(), temp.get_tbUCAttack());
    					}else{
    						UnitCoeffTabRow t = new UnitCoeffTabRow();
    						t.set_unitId(id);
    						t.set_unitName(desc);
    						t.set_coeffAttack(temp.get_tbUCNbHexagone(), temp.get_tbUCAttack());
    						_unitCoeffTab.add(t);
    					}
    				}
    			}
    		}
     
    	}
    	private int unitExiste(Integer id){
    		if ((_unitCoeffTab!=null)&&(_unitCoeffTab.size()>0)){
    			for (int i=0;i<_unitCoeffTab.size();i++){
    				if (_unitCoeffTab.get(i).get_unitId()==id){
    					return i;
    				}
    			}
    		}
    		return -1; 
    	}
     
    	private UnitCoeffs getListCoeffs(){
            Object obj = FacesContext.getCurrentInstance().getApplication().getVariableResolver()
                .resolveVariable(FacesContext.getCurrentInstance(), "unitCoeffs");
            return (UnitCoeffs) obj;
        }
    	private TypeUnits getListTypeUnits(){
            Object obj = FacesContext.getCurrentInstance().getApplication().getVariableResolver()
                .resolveVariable(FacesContext.getCurrentInstance(), "typeUnits");
            return (TypeUnits) obj;
        }
     
     
    	public String save(){
    		System.out.println("save");
    		System.out.println(this._unitCoeffTab.size());
    		for (int i=0;i<this._unitCoeffTab.size();i++){
    			System.out.println(this._unitCoeffTab.get(i).get_coeffAttack1());
    		}
    		return "ok";
    	}
     
    	public List<UnitCoeffTabRow>  get_tab() {
    		return _unitCoeffTab;
    	}
     
    	// autre getters et setters...
     
    }
    Et donc, quand l'utilisateur clic sur le bouton "Sauvegarder" apres avoir fait des modif dans les champs "coeffAttack1" (par exemple)...
    La List n'est pas modifié ????

  4. #4
    sup
    sup est déconnecté
    Membre confirmé Avatar de sup
    Profil pro
    Inscrit en
    Août 2004
    Messages
    70
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 70
    Par défaut
    Salut,
    tu devrais retirer le immediate="true" de ton h:commandButton

    L'affectation des variables à ton bean peut ne pas fonctionner à cause de ca...

  5. #5
    Membre éclairé Avatar de Elwe31
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    487
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 487
    Par défaut
    Merci pour vos reponses.

    Apres avoir enlever le "immediate="true"...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    action="#{unitCoeffForm.save}"
    N'est pas executer !!!!! rien dans le log, et je reste sur la meme page alors qu'il y a une regle de navigation qui fonctionnait avant !

    A quoi sait ce "immediate="true" exactement ??

    Merci encore !

  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
    Citation Envoyé par sup Voir le message
    Salut,
    tu devrais retirer le immediate="true" de ton h:commandButton

    L'affectation des variables à ton bean peut ne pas fonctionner à cause de ca...
    immediate=true juste pour by-passer les phases validation/conversion..

    ton bean est déclaré en request ou session?

  7. #7
    Membre éclairé Avatar de Elwe31
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    487
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 487
    Par défaut
    En "session"....
    Mais je viens d'essayer en "request", et c'est pareil !
    ????

Discussions similaires

  1. [JTable] Interdire la modification des données ?
    Par Cyborg289 dans le forum Composants
    Réponses: 7
    Dernier message: 25/02/2013, 10h40
  2. [MySQL] Modification des données d'une base par les membres
    Par pod1978 dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 22/03/2006, 17h25
  3. Réponses: 2
    Dernier message: 21/03/2006, 15h22
  4. Modification des données impossible
    Par Virgile59 dans le forum Access
    Réponses: 8
    Dernier message: 03/03/2006, 14h41
  5. Réponses: 6
    Dernier message: 15/02/2006, 14h02

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