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

Struts 1 Java Discussion :

code java dans une jsp


Sujet :

Struts 1 Java

  1. #1
    Membre du Club
    Inscrit en
    Avril 2008
    Messages
    187
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 187
    Points : 65
    Points
    65
    Par défaut code java dans une jsp
    bonjour tous le monde
    je veux faire un teste avec le code java dans une jsp, pour vérifier les privilèges d'un utilisateur et afficher le menu selon ces derniers

    voici l'action qui récupère les privilèges:
    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
     
     
    String username = loginForm.getUsername();
    try{
        	st1=con.createStatement();
        	rs1=st1.executeQuery("select priv_libelle from gss_privilege p,gss_actor a,gss_profil_actor pr, gss_droit_acces d where (d.act_id=a.act_id) and (d.profil_act_id=pr.profil_act_id) and (d.priv_id=p.priv_id)and (a.act_name='"+username+"')");
        	int i=0;
        	String[] pri =new String[30];
        	while (rs1.next())
        	{
     
        		System.out.println("["+rs1.getString(1)+"]"); 
     
        	     pri[i]=rs1.getString(1).trim();
     
        	     i++;
        	     request.setAttribute("privilège", rs1.getString(1));
        	}
        }
    le form:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    public class LoginForm extends ActionForm {
    private String username;
    private List privilège;
     
    //setter et guetter des username et privilège
    }
    et voici la 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
     
      <layout:dynMenu config="MainMenu" includeScript="true" left="100" top="150">
      <layout:menuItem  key="Mouvements">
      <%
        String[] priv = new String[30];
        priv= (String[])request.getAttribute("privilège");
         for ( int i=0;i<=30;i++){
       if (priv[i]=="AJOUTER RECEPTION"){
       %>
         <layout:menuItem key="Réception">
                           <layout:menuItem key="Ajouter réception" page="/preparRecep.do"></layout:menuItem>
     
         </layout:menuItem>
         <%}} %>  
         <layout:menuItem key="Packaging">
     
         </layout:menuItem>
     
     
      </layout:menuItem>
      <layout:menuItem key="Edition">
                          <layout:menuItem key="Rapport des transactions" page="/recherche.do"></layout:menuItem>
                          <layout:menuItem key="Etat de Stock" page="/preparStk.do"></layout:menuItem>
         </layout:menuItem>
     
     </layout:dynMenu>
    j'ai essayer de tester sur un seule menuItem pour voir le resultat, sachant que le username que j'ai saisi possède 2 privilèges (AJOUTER UTILISATEUR,AJOUTER RECEPTION)
    mais il m'affiche des erreurs, je voi pas le pb est ou?

  2. #2
    Membre chevronné Avatar de guigui5931
    Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2006
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 667
    Points : 2 232
    Points
    2 232
    Par défaut
    Et il t'affiche quoi comme erreur?

  3. #3
    Expert éminent sénior


    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    7 856
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 7 856
    Points : 34 380
    Points
    34 380
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    priv[i]=="AJOUTER RECEPTION"
    Et avec la bonne méthode pour comparer des chaînes de caractères ?

  4. #4
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    Il faudrait aussi mettre le bon objet dans le scope request.

  5. #5
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Points : 9 529
    Points
    9 529
    Billets dans le blog
    1
    Par défaut
    priv est un tableau de String... donc priv[i].equals("AJOUTER RECEPTION")

    A+

  6. #6
    Membre du Club
    Inscrit en
    Avril 2008
    Messages
    187
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 187
    Points : 65
    Points
    65
    Par défaut
    bonjours et merci pour vos reponses

    voila j'ai essayé de corriger le code de la jsp comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    <%
        String[] priv = new String[30];
        priv= (String[])request.getAttribute("privilège");
         for ( int i=0;i<=30;i++){
       if (priv[i].equals("AJOUTER RECEPTION")){
       %>
     
     
         <layout:menuItem key="Réception">
                           <layout:menuItem key="Ajouter réception" page="/preparRecep.do"></layout:menuItem>
     
         </layout:menuItem>
         <%}} %>
    mais il m'affiche toujours les meme erreurs

    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
     
    exception 
     
    org.apache.jasper.JasperException: Exception in JSP: /forms/menuPrincipal.jsp:39
     
    36:   
    37:   <%
    38:     String[] priv = new String[30];
    39:     priv= (String[])request.getAttribute("privilège");
    40:      for ( int i=0;i<=30;i++){
    41:    if (priv[i].equals("AJOUTER RECEPTION")){
    42:    %>
     
     
    Stacktrace:
    	org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:451)
    	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:373)
    	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
    	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    	org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1063)
    	org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:386)
    	org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:229)
    	org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
    	org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
     
     
    cause mère 
     
    java.lang.ClassCastException: java.lang.String
    	org.apache.jsp.forms.menuPrincipal_jsp._jspService(menuPrincipal_jsp.java:145)
    	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331)
    	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
    	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    	org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1063)
    	org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:386)
    	org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:229)
    	org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
    	org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

  7. #7
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    Citation Envoyé par c_nvy Voir le message
    Il faudrait aussi mettre le bon objet dans le scope request.
    Regarde de plus près le code de ton Action.
    Il faut mettre le tableau de String pri dans le scope request et non chaque privilège.

  8. #8
    Membre du Club
    Inscrit en
    Avril 2008
    Messages
    187
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 187
    Points : 65
    Points
    65
    Par défaut
    j'ai modifier le code
    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
     
    int i=0;
        	String[] pri =new String[30];
        	while (rs1.next())
        	{
     
        		System.out.println("["+rs1.getString(1)+"]"); 
     
        	     pri[i]=rs1.getString(1).trim();
     
        	     i++;
        	    // request.setAttribute("privilège", rs1.getString(1));
        	}
        	request.setAttribute("privilège", pri);
        }
    et j'ai meme modifier le type de la propriété privilège dans le form par String[]

    mais il m'affiche les erreurs suivantes

    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
     
    exception 
     
    org.apache.jasper.JasperException: Exception in JSP: /forms/menuPrincipal.jsp:42
     
    39:      String[] priv = new String[30];
    40:     priv= (String[])request.getAttribute("privilège");
    41:      for ( int i=0;i<=30;i++){
    42:    if (priv[i].equals("AJOUTER RECEPTION")){
    43:    %>
    44:  
    45:      <layout:menuItem key="Réception">
     
     
    Stacktrace:
    	org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:451)
    	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:373)
    	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
    	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    	org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1063)
    	org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:386)
    	org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:229)
    	org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
    	org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
     
     
    cause mère 
     
    java.lang.NullPointerException
    	org.apache.jsp.forms.menuPrincipal_jsp._jspService(menuPrincipal_jsp.java:151)
    	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331)
    	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
    	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    	org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1063)
    	org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:386)
    	org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:229)
    	org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
    	org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    ????

  9. #9
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Points : 9 529
    Points
    9 529
    Billets dans le blog
    1
    Par défaut
    Il vaudrait mieux éviter les accents dans le nom...
    "privilege" plutôt que "privilège"

    Sinon, tu fais 2x un rs.getString(1), ça ne va pas.
    Il faudrait faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    while ( rs1.next() )
    {
       String value = rs1.getString(1);
     
       System.out.println("[" + value + "]");
       pri[i++] = value;
    }
    A+

  10. #10
    Membre du Club
    Inscrit en
    Avril 2008
    Messages
    187
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 187
    Points : 65
    Points
    65
    Par défaut
    bonjour et merci pour votre reponse
    voila j'ai corrigé mon code comme vous m'avez dit:

    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
     
    int i=0;
        	String[] pri =new String[30];
        	while (rs1.next())
        	{
        		String value = rs1.getString(1);
        		System.out.println("["+value+"]"); 
     
        		pri[i++] = value;
     
     
        	  //   i++;
        	    // request.setAttribute("privilège", rs1.getString(1));
        	}
        	request.setAttribute("privilege", pri);
        }
    et j'ai meme corriger les guetter/setter de privilege dans le form

    et dans la 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
     
     <%
     
    String[] priv = new String[30];
    priv= (String[])request.getAttribute("privilege");
    for ( int i=0;i<30;i++){
     
     
    if (priv[i].equals("AJOUTER RECEPTION")){
     
    %>
     
     
         <layout:menuItem key="Réception">
                           <layout:menuItem key="Ajouter réception" page="/preparRecep.do"></layout:menuItem>
     
         </layout:menuItem>
     
       <%}} %>
    ben la il m'affiche le menu comme je veux il m'affiche le menuItem reception

    mais quand j'ai remplacé (AJOUTER RECEPTION) par (AJOUTER ACTIVATION) pour tester alors il m'affiche l'erreur

    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
     
    exception 
     
    org.apache.jasper.JasperException: Exception in JSP: /forms/menuPrincipal.jsp:43
     
    40: for ( int i=0;i<30;i++){
    41: 
    42: 
    43: if (priv[i].equals("AJOUTER ACTIVATION")){
    44: 
    45: %>
    46:   
     
     
    Stacktrace:
    	org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:451)
    	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:373)
    	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
    	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    	org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1063)
    	org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:386)
    	org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:229)
    	org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
    	org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
     
     
    cause mère 
     
    java.lang.NullPointerException
    	org.apache.jsp.forms.menuPrincipal_jsp._jspService(menuPrincipal_jsp.java:152)
    	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331)
    	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
    	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    	org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1063)
    	org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:386)
    	org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:229)
    	org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
    	org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    je pense que l'erreur vien lorsque il parcourt les 30 lignes de priv il trouve juste 2lignes sont remplisses et les autres sont à null
    (parceque cet user possede juste 2privileges)
    rque: le nombre max de privileges = 30 c'est pour ça que j'ai fait le tableau String[30]

    ben j'ai essayé de faire un petit teste sur les lignes non null avan de parcourir le tableau priv

    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
     
    int k=0;
    priv= (String[])request.getAttribute("privilege");
    for (int j=0;j<30;j++){
      if (priv[j].equals(null)){k =j;
      break;}
      else {
      System.out.println(j);}
    }
    System.out.println(k);
    for ( int i=0;i<k;i++){
     
     
    if (priv[i].equals("AJOUTER ACTIVATION")){
     
    %>
     
     
         <layout:menuItem key="Réception">
                           <layout:menuItem key="Ajouter réception" page="/preparRecep.do"></layout:menuItem>
     
         </layout:menuItem>
     
       <%}} %>
    alors il m'affiche les erreurs suivantes:
    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
     
    exception 
     
    org.apache.jasper.JasperException: Exception in JSP: /forms/menuPrincipal.jsp:42
     
    39: int k=0;
    40: priv= (String[])request.getAttribute("privilege");
    41: for (int j=0;j<30;j++){
    42:   if (priv[j].equals(null)){k =j;
    43:   break;}
    44:   else {
    45:   System.out.println(j);}
     
     
    Stacktrace:
    	org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:451)
    	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:373)
    	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
    	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    	org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1063)
    	org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:386)
    	org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:229)
    	org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
    	org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
     
     
    cause mère 
     
    java.lang.NullPointerException
    	org.apache.jsp.forms.menuPrincipal_jsp._jspService(menuPrincipal_jsp.java:151)
    	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331)
    	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
    	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    	org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1063)
    	org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:386)
    	org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:229)
    	org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
    	org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    pouvez-vous m'aider SVP

  11. #11
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Points : 9 529
    Points
    9 529
    Billets dans le blog
    1
    Par défaut
    Il semble que ta requête ramène une valeur NULL.
    Remplace la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    pri[i++] = value;
     
    par
     
    pri[i++] = (value == null) ? "" : value;

  12. #12
    Membre du Club
    Inscrit en
    Avril 2008
    Messages
    187
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 187
    Points : 65
    Points
    65
    Par défaut
    bon j'ai pas bien compris pour quoi on teste le rs si egale a null normalement le rs ne contient pas des null, parceque deja le user contien de 1 à 30 privileges
    donc le resultat de la requette ne ramene les privileges de tel user et notre tableau priv de 30 element contien les privileges si privileges <30 alors le reste de priv est à null !!

    quand j'ai essayé votre solution on m'a affiché l'erreur suivantes:

    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
     
    exception 
     
    org.apache.jasper.JasperException
    	org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:460)
    	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:373)
    	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
    	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    	org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1063)
    	org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:386)
    	org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:229)
    	org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
    	org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
     
     
    cause mère 
     
    java.lang.NullPointerException
    	org.apache.jsp.forms.menuPrincipal_jsp._jspService(menuPrincipal_jsp.java:153)
    	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331)
    	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
    	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    	org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1063)
    	org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:386)
    	org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:229)
    	org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
    	org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    j'ai pas compris d'ou vien cette erreur?

  13. #13
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Points : 9 529
    Points
    9 529
    Billets dans le blog
    1
    Par défaut
    Ce n'est pas le rs qui est NULL, c'est la valeur de la colonne renvoyée...
    Si rs était NULL, tu aurais une erreur NullPointerException dès rs.next()

    Le plus simple pour toi, met ton programme en debug et suit le pas à pas.

  14. #14
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    Pour éviter d'avoir à coder une taille par défaut au tableau dans l'Action, utilise une ArrayList à la place d'un tableau de String.
    Et dans la jsp, il suffit de boucler autant de fois qu'il y a d'éléments dans l'ArrayList en utilisant la méthode size().

  15. #15
    Membre du Club
    Inscrit en
    Avril 2008
    Messages
    187
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 187
    Points : 65
    Points
    65
    Par défaut
    oui c'est ma premiere solution mais au niveau de la vue je pouvais pas defir le type ArrayList quand je fait

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    String [] priv = new String[] au lieu de ArrayList priv = new ArrayList()
    alors je pouvais pas le declarer avec ArrayList ??
    c'est pour ça que j'ai utilisé le tableau de String

    es-ce qu'il y a une solution pour mette le type ArrayList dans la vue?
    merci d'avance

  16. #16
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    Bien sûr. Il suffit d'ajouter un import au début de la jsp :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <%@ page import="java.util.ArrayList" %>

  17. #17
    Membre du Club
    Inscrit en
    Avril 2008
    Messages
    187
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 187
    Points : 65
    Points
    65
    Par défaut
    oui ça marche maintenant

    voici le code de la 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
     
    <%@ page import="java.util.ArrayList" %>
     <%
     
    ArrayList priv = new ArrayList();
    priv= (ArrayList)request.getSession().getAttribute("privilege");
    for ( int i=0;i<priv.size();i++){
     
     
    if (priv.get(i).equals("AJOUTER RECEPTION")){
     
    %>
     
     
         <layout:menuItem key="Réception">
                           <layout:menuItem key="Ajouter réception" page="/preparRecep.do"></layout:menuItem>
     
         </layout:menuItem>
     
    <%}} %>
    et l'action qui recupere les privileges

    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
     
    ArrayList pri =new ArrayList();
        	while (rs1.next())
        	{
        		String value = rs1.getString(1);
        		System.out.println("["+value+"]"); 
     
        		pri.add(value);
        	    	}
       	for (int j=0;j<pri.size();j++)
        	{
     
        		System.out.println("pri"+pri.get(j)); 
        	}
     
     
        	request.getSession().setAttribute("privilege", pri);
    merci beaucoup pour votre aide

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

Discussions similaires

  1. JSP : mettre du code java dans une fonction javascript
    Par padraig29 dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 11/08/2010, 10h07
  2. réutilisation méthode Java dans une JSP
    Par dtwelve dans le forum Servlets/JSP
    Réponses: 0
    Dernier message: 03/09/2009, 14h23
  3. [JSP / Java] - Appel d'une classe java dans une jsp
    Par Lolie11 dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 26/08/2009, 10h04
  4. code java dans une facelet
    Par Jacobian dans le forum JSF
    Réponses: 2
    Dernier message: 03/11/2008, 13h23
  5. Réponses: 5
    Dernier message: 25/05/2007, 10h22

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