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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Avril 2008
    Messages
    187
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 187
    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 Expert Avatar de guigui5931
    Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2006
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Âge : 38
    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
    Par défaut
    Et il t'affiche quoi comme erreur?

  3. #3
    Membre chevronné


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

    Informations forums :
    Inscription : Octobre 2003
    Messages : 7 855
    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 confirmé

    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
    Par défaut
    Il faudrait aussi mettre le bon objet dans le scope request.

  5. #5
    Expert confirmé

    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
    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.

  6. #6
    Membre confirmé
    Inscrit en
    Avril 2008
    Messages
    187
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 187
    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)
    ????

  7. #7
    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
    Billets dans le blog
    1
    Par défaut
    priv est un tableau de String... donc priv[i].equals("AJOUTER RECEPTION")

    A+
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  8. #8
    Membre confirmé
    Inscrit en
    Avril 2008
    Messages
    187
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 187
    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)

+ 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