Bonjour,
Aujourd'hui c'est le dernier problème que je pourrai vous poser donc je mise tous mes espoirs sur votre réponse![]()
Voila mon problème, j'ai une JSP avec une checkbox. Lorsque je la coche et que je soumet, je fait une requête à mes EJB. Lorsque je le décoche, j'ai un tableau qui apparaît où je peux faire une "recherche par critères".
De ce fait, dans mon Action je test d'abord si ma checkbox est cochée, et ensuite si ce n'est pas le cas, quels champs sont remplis ou non.
Le problème est que dans mon action j'utilise un if / else, et qu'une fois le if passé, j'ai le droit à une exception "null" (en faisant un getMessage()). Voyez donc mon code :
JSP :
Mon Action :
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 // Pour cacher / rendre visible le tableau de recherche par critères function ShowTab() { if(document.getElementById("chk1").checked ){ document.getElementById("tab2").style.display = "none"; document.getElementById("numero").value = "0";} else{document.getElementById("tab2").style.display = "block"; document.getElementById("numero").value = "";} } <!-- Formulaire de recherches --> <html:form action="/Actions/doRechercherDemandesValidation.do"> <table cellspacing="6" > <tr> <td><html:checkbox property="allDemandes" onclick="ShowTab()" styleId="chk1" /></td> <td>Toutes les demandes</td> </tr> </table> <table cellspacing="6" > <tr> <td>Uniquement la(les) demande(s) ...</td> </tr> <tr> <!-- Calendrier --> <table class="ds_box" cellpadding="0" cellspacing="0" id="ds_conclass" style="display: none;"> <tr><td id="ds_calclass"> </td></tr> </table> <script language="javascript" src="/LivApp/Javascripts/calendrier.js"></script> <!-- Fin calendrier --> <table class="tableau_recherche" align="center" id="tab2" style="display: none;"> <tr> <th>ayant le numéro (entrez le numéro de livraison) :</th> <th><html:text styleId="numero" property="numero" value=""/></th> </tr> <tr> <td>prévue(s) pour le (date de livraison) :</td> <td><input onclick="ds_sh(this);" name="date" readonly="readonly" style="cursor:text"/></td> </tr> <tr> <th>émise(s) par (entrez le nom du demandeur) :</th> <th><input type"text"/></th> </tr> <tr> <td>d'un type de composant spécifique : </td> <td> <bean:define id='listeDemandesValidation' type='java.util.Collection' name='tableauDemandesValidationActionForm' property='listeTypeDemandes'/> <html:select name="tableauDemandesValidationActionForm" property="codeType" > <html:option value="0">-- Tous les types --</html:option> <html:options collection="listeDemandesValidation" property="codeType" labelProperty="libType" /> </html:select> </td> </tr> </table> </tr> </table> <br /> <table align="center"> <td><html:submit>Rechercher</html:submit></td> <td><html:button property="verMenu" onclick="javascript:annuler()" value="Annuler" /></td> </tr> </table> </html: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 package gest_livr_appli.Action; import org.apache.struts.action.*; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import gest_livr_appli.EJB.Delegate.LivraisonDelegate; import gest_livr_appli.DTO.LivraisonDto; import gest_livr_appli.ActionForm.LivraisonActionForm; import java.util.Arrays; public class doRechercherDemandesValidationAction extends Action{ public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { try { LivraisonActionForm resultatsDemandesValidationActionForm = (LivraisonActionForm) actionForm; LivraisonDelegate livraisonDelegate = new LivraisonDelegate(); // Test de la recherche par Numéro String temp = httpServletRequest.getParameter("numero"); // L'appli récupère le champ du numéro et le converti System.out.println(temp); int num = Integer.parseInt(temp); Integer numero = new Integer(num); LivraisonDto[] livraisonDto; // Test de la valeur de la checkbox String checkBox = httpServletRequest.getParameter("allDemandes"); System.out.println(checkBox); // Si la checkbox est cochée, on sais quoi faire. if(checkBox.matches("on")) { livraisonDto = livraisonDelegate.livraisonFindAllWFV(); resultatsDemandesValidationActionForm.setlivListCollection(Arrays.asList(livraisonDto)); } // Sinon on fait autre chose mais le System.out ne passe même pas !!! else { System.out.println("ça passe par le else"); } } catch (Throwable ex) { // Le System.out m'affiche null (???) System.out.println(ex.getCause()); return null; } return (actionMapping.findForward("afficherResultats")); } }
Partager