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 :

probleme avec if et else


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 probleme avec if et else
    bonjour tous le monde
    j'ai le code suivant :

    voici ma 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
    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
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
     
    <%@ page language="java" pageEncoding="ISO-8859-1"%>
     
    <%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>
    <%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
    <%@ taglib uri="/WEB-INF/struts-layout.tld" prefix="layout" %>
    <%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic" %>
    <%@ taglib uri="http://struts.apache.org/tags-tiles" prefix="tiles" %>
     
     
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <layout:html>
     
      <head>
     
     
     
        <title>Rechercher réception</title>
        <layout:skin includeScript="true"/>
     
    	<meta http-equiv="pragma" content="no-cache">
    	<meta http-equiv="cache-control" content="no-cache">
    	<meta http-equiv="expires" content="0">    
    	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    	<meta http-equiv="description" content="This is my page">
    	<!--
    	<link rel="stylesheet" type="text/css" href="styles.css">
    	-->
     
    	<script>
    	function setHidden(value){document.rechercheForm.hidden.value=value;}
     
    	</script>
     
      </head>
     
     
      <body>
       <center>
     
     <layout:img src="../images/entete.JPG"/>
     
     
      <layout:dynMenu config="MainMenu" includeScript="true" left="100" top="150">
      <layout:menuItem  key="Mouvements">
         <layout:menuItem key="Réception">
                           <layout:menuItem key="Ajouter réception" page="/preparRecep.do"></layout:menuItem>
                           <layout:menuItem key="Visualiser" page="/recherche.do"></layout:menuItem>
         </layout:menuItem>
         <layout:menuItem key="Packaging">
     
         </layout:menuItem>
     
      </layout:menuItem>
     
     </layout:dynMenu>
     <hr>
     
     
        <br/><br/>
        <layout:form action="/recherche1.do" method="post">
        <layout:text property="hidden" value="default" mode="H,H,H"></layout:text>
     
            <table border="1" bordercolor="#000000" bgcolor="#c0c0c0 " width="527">
            <tr>
              <td height="27" colspan="4" bgcolor="#c08080">Rechercher des réceptions:<br></td>
            </tr>
            <tr>
              <td height="27" colspan="4" bgcolor="#c08080"><h4>Veuillez introduire au moins un des crit&egrave;res suivants :</h4><br></td>
            </tr>
            <tr>
              <td   bgcolor="#c0c0c0"><layout:text property="nrec" key="Num&eacute;ro de réception :"></layout:text> </td>
     
              </tr>
            <tr>
              <td  bgcolor="#c0c0c0"><layout:select property="fournisseur" key="Fournisseur :">
              <layout:option value=""></layout:option>
              <layout:options property="nomFournisseur"></layout:options>
              </layout:select></td>
     
              </tr>
            <tr>
              <td  bgcolor="#c0c0c0"><td  bgcolor="#c0c0c0"><layout:select property="warehouse" key="Warehouse :">
              <layout:option value=""></layout:option>
              <layout:options property="nomWarehouse"></layout:options>
              </layout:select></td>
     
              </tr>
     
     
            <tr>
              <td bgcolor="#c0c0c0"> <layout:date property="dat_rec_du" key="Date  Du :" endYear="2020" startYear="1999" patternKey="dd/MM/y" calendarTooltip="Choisir la date debut" ></layout:date> </td>
     
          </tr>
          <tr>
          <td bgcolor="#c0c0c0"> <layout:date property="dat_rec_au" key="Date  Au :" endYear="2020" startYear="1999" patternKey="dd/MM/y" calendarTooltip="Choisir la date fin" ></layout:date> </td>
          </tr>
          <tr>
            <td  bgcolor="#c0c0c0"><CENTER><html:submit onclick="setHidden('Rechercher');">Rechercher</html:submit></CENTER></td>
            <td  bgcolor="#c0c0c0"><CENTER><html:submit onclick="setHidden('Réinitialiser');">Réinitialiser</html:submit></CENTER></td>
          </tr>
     
         </table>
     
        </layout:form>
     
        </center>
      </body>
    </layout:html>

    le form:

    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
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
     
     
    /*
     * Generated by MyEclipse Struts
     * Template path: templates/java/JavaClass.vtl
     */
    package com.yourcompany.struts.form;
     
    import java.util.List;
     
    import javax.servlet.http.HttpServletRequest;
    import org.apache.struts.action.ActionErrors;
    import org.apache.struts.action.ActionForm;
    import org.apache.struts.action.ActionMapping;
     
    /** 
     * MyEclipse Struts
     * Creation date: 07-26-2008
     * 
     * XDoclet definition:
     * @struts.form name="rechercheForm"
     */
    public class RechercheForm extends ActionForm {
     
     
    	private String nrec;
    	private String fournisseur;
    	private List nomFournisseur;
    	private String warehouse;
    	private List nomWarehouse;
    	private String dat_rec_du;
    	private String dat_rec_au;
    	private String hidden;
     
     
    	public ActionErrors validate(ActionMapping mapping,
    			HttpServletRequest request) {
    		// TODO Auto-generated method stub
    		return null;
    	}
     
    	/** 
             * Method reset
             * @param mapping
             * @param request
             */
    	public void reset(ActionMapping mapping, HttpServletRequest request) {
    		// TODO Auto-generated method stub
    	}
     
    	public void setNrec(String nrec) {
    		this.nrec = nrec;
    	}
     
    	public String getNrec() {
    		return nrec;
    	}
     
    	public void setFournisseur(String fournisseur) {
     
    		this.fournisseur = fournisseur;
    	}
     
    	public String getFournisseur() {
    		return fournisseur;
    	}
     
    	public List getNomFournisseur() {
    		return nomFournisseur;
    	}	
     
    	public void setNomFournisseur(List nomFournisseur) {
    		this.nomFournisseur = nomFournisseur;
    	}	
     
     public void setWarehouse(String warehouse) {
     
    		this.warehouse = warehouse;
    	}
     
    	public String getWarehouse() {
    		return warehouse;
    	}
     
    	public List getNomWarehouse() {
    		return nomWarehouse;
    	}	
     
    	public void setNomWarehouse(List nomWarehouse) {
    		this.nomWarehouse = nomWarehouse;
    	}	
     
    public void setDat_rec_du(String dat_rec_du) {
     
    		this.dat_rec_du = dat_rec_du;
    	}
     
    	public String getDat_rec_du() {
    		return dat_rec_du;
    	}
     
    public void setDat_rec_au(String dat_rec_au) {
     
    		this.dat_rec_au = dat_rec_au;
    	}
     
    	public String getDat_rec_au() {
    		return dat_rec_au;
    	}	
     
     public void setHidden(String hidden) {
     
    		this.hidden = hidden;
    	}
     
    	public String getHidden() {
    		return hidden;
    	}
    }
    voici l'action qui traite les boutton reinitialiser et rechercher, elle est de type dispatchAction, j'ai un probleme dans la methode rechercher:

    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
     
     
    public ActionForward Rechercher(ActionMapping mapping, ActionForm form,
    			HttpServletRequest request, HttpServletResponse response)throws IOException, ServletException, SQLException {
    		RechercheForm rechercheForm = (RechercheForm) form;
     
    		String set,dateDu,dateAu,four,mag,txt,txt1,txt2,requette = null; 
     
    		Connexion connexion=new Connexion();
    		Connection con=connexion.createConnection();
    		Statement st,st1 = null;
    		ResultSet rs,rs1 = null;
     
     
    	set = rechercheForm.getNrec();
    	System.out.println(set);
    	four = rechercheForm.getFournisseur();
    	System.out.println(four);
    	mag = rechercheForm.getWarehouse();
    	dateDu = rechercheForm.getDat_rec_du();
    	dateAu = rechercheForm.getDat_rec_au();
    	st=con.createStatement();
     
     
     
    if (set != null)
    	{
    	txt = set.substring(0,3);
    	System.out.println("txt="+txt);
    	txt1 = set.substring(4,7);
                System.out.println("txt1="+txt1);
    	txt2 = set.substring(8);
    	System.out.println("txt2="+txt2);
     
       rs = st.executeQuery("select trans_no,trans_type,gss_transaction.whs_id,dest_nom,whs_adresse,trans_date,act_name from gss_transaction, gss_warehouse, gss_actor, gss_destinataire where (gss_transaction.whs_id = gss_warehouse.whs_id) and (gss_transaction.act_id = gss_actor.act_id) and (gss_transaction.dest_id = gss_destinataire.dest_id) and (gss_transaction.trans_type='"+txt+"') and(gss_transaction.whs_id='"+txt1+"') and(gss_transaction.trans_no='"+txt2+"')");
     
       while (rs.next())
       {
     
     System.out.println("["+rs.getString(1)+"],["+rs.getString(2)+"],["+rs.getString(3)+"],["+rs.getString(4)+"],["+rs.getString(5)+"],["+rs.getString(6)+"],["+rs.getString(7)+"]");
       }
     
    	}
    else
    {
     
    System.out.println("dans le else");
     
     }
    return null;
    	}
    quand le champs res est different de null la requete s'exécute le plus normalement du monde, mais quand il est égale à null il ne rentre pas dans le else mais il m'affiche l'erreur suivante:

    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
     
    exception 
     
    javax.servlet.ServletException: String index out of range: 3
    	org.apache.struts.action.RequestProcessor.processException(RequestProcessor.java:523)
    	org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:421)
    	org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
    	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.StringIndexOutOfBoundsException: String index out of range: 3
    	java.lang.String.substring(Unknown Source)
    	com.yourcompany.struts.action.Recherche1Action.Rechercher(Recherche1Action.java:104)
    	sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    	sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    	sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    	java.lang.reflect.Method.invoke(Unknown Source)
    	org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:274)
    	org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:194)
    	org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)
    	org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
    	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

  2. #2
    Membre éclairé Avatar de zorm
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    584
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 584
    Points : 672
    Points
    672
    Par défaut
    L'erreur est simple

    Quand tu fais ceci:

    set = rechercheForm.getNrec();

    Si l'utilisateur n'a pas souhaité remplir ce champ, on aura set = "" et non set = null

    Donc il rentre dans ton if car non null et "".substring(0,3); renvoie l'exception que tu nous as copié

  3. #3
    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 thank you
    merci bcp ça marche tres bien

Discussions similaires

  1. probleme avec If et Else avec python 3
    Par pgu19 dans le forum Général Python
    Réponses: 6
    Dernier message: 04/09/2011, 13h37
  2. probleme avec if et else
    Par jarod6827 dans le forum Langage
    Réponses: 25
    Dernier message: 21/08/2009, 13h52
  3. Problème de formulaire avec des If-Else
    Par MasterChief78 dans le forum Access
    Réponses: 21
    Dernier message: 29/08/2006, 12h54
  4. Probleme avec la fonction IF ELSE
    Par guillaumeIOB dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 02/12/2005, 11h52
  5. [LG]Problème avec if/else.
    Par Loceka dans le forum Langage
    Réponses: 7
    Dernier message: 02/11/2004, 10h10

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