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

Servlets/JSP Java Discussion :

Tester un attribut servlet


Sujet :

Servlets/JSP Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Inscrit en
    Janvier 2011
    Messages
    114
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 114
    Points : 30
    Points
    30
    Par défaut Tester un attribut servlet
    Bonjour je besoin d'aide pour un code je veux quand je modifier les attributs de la classe fournisseur tester si le nom existe déjà voici le code que j'ai utilisé :
    if (action.equals("edit")) {// edit Fournisseur
    Session session = HibernateUtil.currentSession();
    session.beginTransaction();
    String nom;
    nom=request.getParameter("nom");
    String hql = "from Fournisseur F where F.nom='"+ nom + "'";
    //String hql = "from Fournisseur F where F.nom='"+ nom + "' limite 1";
    Query query = session.createQuery(hql);
    Fournisseur user = (Fournisseur) query.setMaxResults(1);
    session.getTransaction().commit();

    if (id_fournisseur != null) {
    Fournisseur fournisseur = (Fournisseur) sessionDb.load(Fournisseur.class, id_fournisseur);
    try {
    fournisseur.setNom(request.getParameter("nom"));
    fournisseur.setPays(request.getParameter("pays"));
    fournisseur.setVille(request.getParameter("ville"));
    fournisseur.setAdresse(request.getParameter("adresse"));
    fournisseur.setTelephone(request.getParameter("telephone"));
    fournisseur.setMail(request.getParameter("mail"));
    fournisseur.setFax(request.getParameter("fax"));


    sessionDb.update(fournisseur);
    sessionDb.flush();
    sessionDb.connection().commit();
    sessionDb.close();
    } catch (HibernateException e) {
    e.printStackTrace();

    } catch (SQLException e) {

    e.printStackTrace();
    }
    response.sendRedirect("fournisseurs?op=index&id="+fournisseur.getId());
    }

  2. #2
    Membre éprouvé Avatar de noOneIsInnocent
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    1 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 037
    Points : 1 161
    Points
    1 161
    Par défaut
    Bonjour

    Quel est le problème exactement ? ou l'erreur ?
    Est-ce que la mise à jour ne se fait pas ?

    Juste quelques remarques::
    1)
    Avant de construire la string hql,il faut peut être s'assurer que la variable nom n'est pas vide ou null
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    String nom;
    nom=request.getParameter("nom");
    String hql = "from Fournisseur F where F.nom='"+ nom + "'";
    2)

    Dans le code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Fournisseur user = (Fournisseur) query.setMaxResults(1);
    session.getTransaction().commit();
    je pense que le commit ne sert à rien puisque que c'est un select

    3) d'où vient le

    4) et enfin est-ce que tu es sûr qu'il est n'est pas null et que tu rentres dans ta condition

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    if (id_fournisseur !=null){
    //
    }

  3. #3
    Nouveau membre du Club
    Inscrit en
    Janvier 2011
    Messages
    114
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 114
    Points : 30
    Points
    30
    Par défaut
    salut merci ISMA j'ai trouvé la solution, j'ai ajouté unique key dans la table furnisseur et dans ma requête j'ai ajouté l'id de fournisseur comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String hql = "from Fournisseur F where F.nom='"+ nom + "'and F.id !='"+ id_fournisseur + "'";

  4. #4
    Membre éprouvé Avatar de noOneIsInnocent
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    1 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 037
    Points : 1 161
    Points
    1 161
    Par défaut
    Tant mieux! mais ça ne doit pas t'empêcher de prendre en compte les remarques (tester si le nom est null ou pas etc ....)
    n'oublies pas le tag résolu

  5. #5
    Nouveau membre du Club
    Inscrit en
    Janvier 2011
    Messages
    114
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 114
    Points : 30
    Points
    30
    Par défaut
    salut pour répondre à vos questions le problème que j'ai c'est que je ne peut pas modifier seulement un champs d'un fournisseur il se croit que ce fournisseur existe donc il ne faut pas modifier leurs champs.

    1)j'ai pas fais ce test car c'est obligatoirement de remplir le champ nom.

    2)j'ai pas fais attention en tous cas j'ai changé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    query.setMaxResults(1);
    PAR 3)le id_fournisseur vient de ma table fournisseur c'est l'id
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    try {
    			id_fournisseur = Integer.parseInt(request.getParameter("id"));
    		} catch (NumberFormatException e) {
    			System.out.println(e);
    		}
    4)oui dans ma table fournisseur j'exige que l'id ne doit pas être null c'est un clé primaire.

    j'espère que j'ai bien expliquer et j'ai bien répondu à vos questions. merci de vos remarques.

  6. #6
    Membre éprouvé Avatar de noOneIsInnocent
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    1 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 037
    Points : 1 161
    Points
    1 161
    Par défaut
    Juste une question : comment vous avez fait pour avoir rendu le champs nom obligatoire ?

  7. #7
    Nouveau membre du Club
    Inscrit en
    Janvier 2011
    Messages
    114
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 114
    Points : 30
    Points
    30
    Par défaut
    j'utilise le javascript comme suit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    function validate(){
    var reference=document.pdt.reference;
    if ((reference.value==null)||(reference.value=="")){
    alert("Entrer un référence");
    reference.focus();
    return false;
    }
    }

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

Discussions similaires

  1. [XSLT 1.0] Comment tester un attribut dans un for-each?
    Par CBresso dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 23/09/2011, 16h58
  2. [AC-2003] Tester les attributs d'une relation ?
    Par marot_r dans le forum VBA Access
    Réponses: 2
    Dernier message: 30/03/2010, 22h01
  3. Tester existence Attribut xml
    Par inspecteur rick dans le forum Débuter
    Réponses: 2
    Dernier message: 23/12/2009, 15h43
  4. tester les attributs
    Par bubu87 dans le forum Scripts/Batch
    Réponses: 4
    Dernier message: 03/07/2009, 15h30
  5. Tester un attribut ou methode cross-browser
    Par andry.aime dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 26/03/2009, 09h23

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