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 :

Problème fonction jsp


Sujet :

Servlets/JSP Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 45
    Par défaut Problème fonction jsp
    Bonjour tout le monde, j'ai un problème pour la création d'une fonction JSP.

    J'ai en fait créé une fonction qui me permet de créer des menu récursif.
    Je sais pas comment faire des fonctions en jsp et comment les appeler.

    Est ce qu'une page de ce type est bonne :

    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
     
     
    <% 
    !String menu(String id_ordre) {
     
                    String result="";
                    String critere="";
                    for(int i=0;i<id_ordre.length()+2;i++) 
                            critere +='_';
                            
                    ResultSet query= mysql.executeQuery("SELECT * FROM doc_themes WHERE ordre LIKE '"+critere+"' AND ordre LIKE '"+id_ordre+"%'  ORDER BY ordre");
                    //Affichage du thème en cours
                    ResultSet search_souscat= mysql.executeQuery("SELECT COUNT(*) FROM doc_themes WHERE ordre like '"+query.getString("ordre")+"%' AND ordre!='"+query.getString("ordre")+"'");
                            if(search_souscat!=null && search_souscat.next()) 
                            {
                                    if(!search_souscat.getString(1).equals("0"))
                                            result += "<ul>";               
                                    search_souscat.close();         
                            }
                    while(search_souscat!=null && search_souscat.next())
                    {
                            result+="<li>"+search_souscat.getString("ordre");
                            menu(search_souscat.getString("ordre"));
                            result+="</li>"+"\n";
                    }
                    ResultSet search_souscat2= mysql.executeQuery("SELECT COUNT(*) FROM doc_themes WHERE ordre like '"+query.getString("ordre")+"%' AND ordre!='"+query.getString("ordre")+"'");
                            if(search_souscat2!=null && search_souscat2.next()) 
                            {
                                    if(!search_souscat2.getString(1).equals("0"))
                                            result += "</ul>";
                                    search_souscat2.close();
                            }
                    return result;
            }
    %>
    <%=menu("") %>

  2. #2
    Membre extrêmement actif Avatar de Mister Nono
    Homme Profil pro
    Ingénieur Mathématiques et Informatique
    Inscrit en
    Septembre 2002
    Messages
    2 242
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur Mathématiques et Informatique
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 242
    Par défaut
    Un des grands intérêts d'utiliser Java 2EE (avec servlet, jsp...) est de séparer la partie interface de la partie métier.

    Et là, tu insères un traitement long (partie métier) dans un jsp qui contiendrait plutôt la partie html, javascript, ajax...

    Je pense qu'il serait bien que tu insères le code html dans la jsp, que tu passes en paramètre un objet représentatif de ton menu (objet JAVA) que tu aura constitué dans une servlet, et qu'enfin tu insères le contenu de cet objet là où cela doit être fait dans le html.

    Comme cela, le jour où ton menu change, l'objet change, mais pas le jsp. : donc le code est facilement réutilisable.

    Nota : Le web contient pleins d'exemples sur cela.

    A+

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 45
    Par défaut
    hum hum

    J'ai pas tout compris. C'est sur que ca serai bien d'avoir une fonction réutilisable.

    Celle-ci serait réutilisable dans le cadre de mon application:
    J'ai des menu qui sont sous cette forme, il est ordonné grace a l'id d'un theme que je récupère dans uen base de donnée :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    THEME 1 (ordre = 01)
       ss_theme 1.1 (ordre 0101)
          ss_theme 1.1.1 (ordre 010101)
       ss_theme 1.2 (ordre 0102)
    THEME 2 (ordre = 02)
       ss_theme 2.1 (ordre 0201)
       ss_theme 2.2 (ordre 0202)
    THEME 3 (ordre = 03)
    ...
    ma fonction est appelé a chaque fois que je veux mettre mon menu et je lui passe comme parametre l'ordre que je désire afficher.

    si je fais : menu('01') ca m'affichera le THEME1 et ss_theme.
    si je fais : menu('0101') j'aurais les ss_theme 1.1 et ses ss_theme.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 45
    Par défaut
    J'ai apporté une petite modification :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <%!
    public String menu(String id_ordre){
    J'ai un nouveau problème, j'appelle dans cette fonction la chose suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ResultSet query= mysql.executeQuery("SELECT * FROM doc_themes WHERE ordre LIKE '"+critere+"' AND ordre LIKE '"+id_ordre+"%'  ORDER BY ordre");
    grace au l'entete de mon fichier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <jsp:useBean id="mysql" scope="session" class="com.viti.MySQLConnectionHandler" />
    Mais j'ai l'erreur suivate :
    cannot resolve symbol
    symbol : variable mysql

    quelqu'un peut t'il m'aider svp?

  5. #5
    Membre confirmé Avatar de seb55555
    Profil pro
    Inscrit en
    Août 2004
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 117
    Par défaut
    Je ne mettrai pas le ! dans <%! code %> pour le code qui appelle la variable mysql. Tu ne devrais le mettre que pour des déclarations de variables GLOBALES du servlet.

    Un lien qui présente les JSP et résume un peu la syntaxe : http://fr.wikipedia.org/wiki/JavaServer_Pages

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

Discussions similaires

  1. Problème fonctions javascript dans une page JSP
    Par jrosenzw dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 28/10/2008, 08h57
  2. Problème fonction PL/SQL
    Par SSJ17Vegeta dans le forum PL/SQL
    Réponses: 2
    Dernier message: 29/10/2005, 21h14
  3. Problème fonction et trigger sous 7.2
    Par anoukhan dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 22/06/2005, 22h53
  4. [Tomcat 5] problème de JSP et de bean
    Par squal_13 dans le forum Tomcat et TomEE
    Réponses: 2
    Dernier message: 29/11/2004, 13h27
  5. Réponses: 2
    Dernier message: 20/08/2004, 17h10

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