Bonjour,
la question est dans le titre, est-il possible de recuperer une valeure saisie dans un champ text sans que le formulaire soit valider?
Merci.
Bonjour,
la question est dans le titre, est-il possible de recuperer une valeure saisie dans un champ text sans que le formulaire soit valider?
Merci.
Je ne comprends pas bien ta question...
Tu utilises struts ?
Tu veux récupérer la valeur coté serveur ?
Pour struts, il faut mettre validate="false"
Coté serveur, request.getParameter("nomDuChampDeFormulaire");
Sinon, précise un peu
A+
Ok, je me suis mal exprimé, (et oui j'utilise struts)
en fait le truc, c'est que j'ai un champ date qui prend comme valeur par defaut la date du jour. J'ai un boutton a coté qui ouvre un calendrier pour choisir la date et je voudrais savoir comment recuperer cette date.
En fait mon probleme est de recuperer la date quand le formulaire est valider mais qu'il y a une erreur du a un autre champ, j'affiche donc un message et je demande de corriger le champ, mais mon champ date s'est reinitialisé a la date par defaut et n'a pas garder la date choisie.
cette partie de code test si une varible a été enregistrer dans la session pour savoir si j'affiche la date du jour ou la date stockéé:
et la c'est mon champ ou la date est choisie avec le calendrier:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 <%java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("dd/MM/yyyy");%> <% String test; %> <% if (request.getSession().getAttribute("ma_date") == null) { test = sdf.format(new java.util.Date()); } else { test = (String)request.getSession().getAttribute("ma_date"); }%>
j'ai essayé de la recuperer comme ça:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 <html:text name="monchamp" property="<%=Const.ONESHOTFORM_DATE%>" readonly="true" value="<%= test %>"/> <input type="button" class="contentButton" onclick="displayCalendar(document.OneShotForm.date,'dd/mm/yyyy',this)" alt="calendrier"/>
mais sa marche pas, j'ai pas encore tout capté sur comment marche le request et comme sa passe d'une page a l'autre, mais j'ai commencé le J2EE y a 3 jours^^.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 <% String tmp = request.getParameter("monchamp"); %> <% request.getSession().setAttribute("ma_date", tmp); %>
Merci pour ton aide.
ps: le truc c'est que je vois pas comment la date s'affiche dans mon champ text quand je selectionne la date, je vois aucun lien entre mon champ text et mon calendrier (le code initial n'est pas de moi).
Ca me parait un peu complexe ce que tu veux faire.
Pourquoi ne pas faire tout directement en javascript etant donne que ton calendrier est ecris en javascript ?
Le problème, à mon sens, c'est que tu n'utilises pas struts comme il faut.
Normalement, tu as un objet ActionForm qui contient les champs de la page jsp et un contrôleur pour traiter les données de la page (après une éventuelle validation de l'ActionForm).
Donc, pour avoir par défaut la date du jour dans ton champ, tu n'as qu'à mettre l'initialisation dans le constructeur de l'ActionForm...
Dans tous les cas, request.setAttribute(...) n'est pas adapté du tout...
A+
Effectivement j'ai bien une actionform, mais elle n'est appeler que lorsque la validation du formulaire est bonne, s'il y a une erreur dans le formulaire je ne passe pas par l'actionform et c'est pour cela que je ne sait pas ou recuperer la date.
donc ou est ce que je peut recuperer cette date?
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 public class RemiseOneShotFormAction extends rbAction { public String actionExecute(DynaActionForm form, HttpServletRequest request, HttpServletResponse httpservletresponse) throws Exception { Date dateEffet = new Date(); Date dateCancel; String typeDate = form.getString(Const.ONESHOTFORM_TYPEDATE); String montant = Float.toString(Float.parseFloat(form.getString( Const.ONESHOTFORM_MONTANT).replace(',', '.'))); if (!"next".equals(typeDate)) { String date = form.getString(Const.ONESHOTFORM_DATE); SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy"); dateEffet = sdf.parse(date); } ..... ..... ..... .....
En fait j'ai un validator qui check le montant du formulaire et si ce montant n'est pas bon j'affiche un message d'erreur et mon actionform n'est pas appeler (si j'ai bien compris).
Ben si tu passes par l'ActionForm...
D'ailleurs l'ActionForm étend ValidatorForm pour que ça marche
Ah ok, donc je peut recuperer ma date dans le validator alors?
comment je trouve la date qui a été saisie?
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 public static boolean seuilOK(Object bean, ValidatorAction va, Field field, ActionMessages messages, HttpServletRequest request) { try { String montant = ValidatorUtils.getValueAsString(bean, field.getProperty()).replace(',', '.'); PropertyHelper prop = PropertyHelper.getInstance(); prop.setProperty(HighdealBaseDialog.HD_CONFIG_FILE, "hd.config"); prop.load("rdbx.properties"); float seuil = prop.getIntProperty("maxAvoir", true).floatValue(); float montantF = Float.parseFloat(montant); String idRemise = request.getParameter(Const.ONESHOTFORM_ID); if ("Avoir montant libre".equals(idRemise)) { if (montantF <= 0) { messages.add(field.getKey(), new ActionMessage( "errors.seuilNegatif", "errors.seuilNegatif")); request.getSession().setAttribute("ma_date",?????); return false; }
dsl d'insister mais j'ai un peut de mal, sa fait longtemps que j'ai pas fais de prog web.
La date a bien une propriété dans l'ActionForm non ?
Donc, tu récupères directement avec le getter associé
Ok c'est bon j'ai recup la date dans le validatorform avec cette syntaxe:
Merci bcp.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 String tmp = request.getParameter(Const.ONESHOTFORM_DATE); request.setAttribute("ma_date", tmp);
Partager