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