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

Servlets/JSP Java Discussion :

Problème avec le passage de variable request.


Sujet :

Servlets/JSP Java

  1. #1
    Membre régulier
    Inscrit en
    Juillet 2003
    Messages
    139
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 139
    Points : 86
    Points
    86
    Par défaut Problème avec le passage de variable request.
    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.

  2. #2
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 310
    Points : 9 522
    Points
    9 522
    Billets dans le blog
    1
    Par défaut
    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+
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre régulier
    Inscrit en
    Juillet 2003
    Messages
    139
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 139
    Points : 86
    Points
    86
    Par défaut
    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éé:

    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");
    }%>
    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
     
    <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"/>
    j'ai essayé de la recuperer comme ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <% String tmp = request.getParameter("monchamp"); %>
    <% request.getSession().setAttribute("ma_date", tmp); %>
    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^^.

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

  4. #4
    Membre expérimenté Avatar de willoi
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    1 355
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 355
    Points : 1 639
    Points
    1 639
    Par défaut
    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 ?

  5. #5
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 310
    Points : 9 522
    Points
    9 522
    Billets dans le blog
    1
    Par défaut
    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+
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #6
    Membre régulier
    Inscrit en
    Juillet 2003
    Messages
    139
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 139
    Points : 86
    Points
    86
    Par défaut
    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.

    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);
    		}
    .....
    .....
    .....
    .....
    donc ou est ce que je peut recuperer cette 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).

  7. #7
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 310
    Points : 9 522
    Points
    9 522
    Billets dans le blog
    1
    Par défaut
    Ben si tu passes par l'ActionForm...
    D'ailleurs l'ActionForm étend ValidatorForm pour que ça marche
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  8. #8
    Membre régulier
    Inscrit en
    Juillet 2003
    Messages
    139
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 139
    Points : 86
    Points
    86
    Par défaut
    Ah ok, donc je peut recuperer ma date dans le validator alors?

    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;
    	}
    comment je trouve la date qui a été saisie?

    dsl d'insister mais j'ai un peut de mal, sa fait longtemps que j'ai pas fais de prog web.

  9. #9
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 310
    Points : 9 522
    Points
    9 522
    Billets dans le blog
    1
    Par défaut
    La date a bien une propriété dans l'ActionForm non ?
    Donc, tu récupères directement avec le getter associé
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  10. #10
    Membre régulier
    Inscrit en
    Juillet 2003
    Messages
    139
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 139
    Points : 86
    Points
    86
    Par défaut
    Ok c'est bon j'ai recup la date dans le validatorform avec cette syntaxe:

    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);
    Merci bcp.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème avec un passage de variables
    Par Vador76 dans le forum Scripts/Batch
    Réponses: 2
    Dernier message: 16/05/2011, 10h17
  2. Problème avec les types de variable
    Par binhjuventus dans le forum C++Builder
    Réponses: 2
    Dernier message: 13/07/2006, 12h30
  3. problème avec les noms de variables
    Par mederic dans le forum C
    Réponses: 3
    Dernier message: 08/05/2006, 22h01
  4. [XSLT] Problème avec la portée des variables
    Par sheura dans le forum XSL/XSLT/XPATH
    Réponses: 17
    Dernier message: 10/01/2006, 12h49
  5. Problème avec certains caractéres dans variable
    Par Off$ide dans le forum Langage
    Réponses: 14
    Dernier message: 13/12/2005, 10h46

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