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 le DispatchAction


Sujet :

Struts 1 Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Septembre 2007
    Messages
    233
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 233
    Par défaut Probleme avec le DispatchAction
    Bonjour tout L monde,

    J'utilise un DispatchAction pour gerer deux actions dans une page jsp je modifie bien mon fichier struts-config en ajoutant le champ parametre comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <action
          attribute="modification1Form"
          input="/modification1.jsp"
          name="modification1Form"
          parameter="operation"
          path="/modification1"
          scope="request"
          type="com.iam.struts.action.Modification1Action">
          <forward name="tout" path="/modification1.jsp" />
        </action>
    Tandis que dans mon Action.class :

    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
     
     
    public class Modification1Action extends DispatchAction {
     
    	public ActionForward lire(ActionMapping mapping, ActionForm form,
    			HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
    		Modification1Form modifes = (Modification1Form) form;
    	 Integer anneeSelected=modifes.getAnnee();
     
    	 modifes.setAnnee(anneeSelected);
    	 modifes.setFinanceList(Charger.chargerList(anneeSelected)) ;
    		return mapping.findForward("tout");
     
    	}
    	public ActionForward save(ActionMapping mapping, ActionForm form,
    			HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
    		Modification1Form modifes = (Modification1Form) form;
     
    		Integer year=modifes.getAnnee();
    		ArrayList<Finance> ham =modifes.getFinanceList();
    		Modifier.modifier(Charger.chargerList(year),ham, year);
     
    			return mapping.findForward("tout");
     
    	}
    J'ai deux fonctions gérées par le DispatchAction : lire et save .

    Et finallement dans la jsp je gère le traitement comme suit :

    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
     
     
    <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">
    	<SCRIPT>function set(target) {document.Modification1Form[0].operation.value=target;}</SCRIPT>
     
    // Pour la fonction lire via une Liste déroulante
    annee : <html:select property="annee" onchange="setHidden('lire');" onchange="submit();">
     
    			<html:option value ="2007">2007</html:option>
                <html:option value ="2008">2008</html:option>
                <html:option value ="2009">2009</html:option>
                <html:option value ="2010">2010</html:option>
              </html:select>
    //La fonction save 
    <html:submit onclick="set('save');">SAVE</html:submit>
    Le problème se trouve en niveau de la fonction save qui me retourne l'erreur suivante :

    'document.Modification1Form.0' a la valeur null ou n'est pas un objet.

    L'autre fonction lire marche très bien sans problème.

    Votre aide sera la bienvenue.

  2. #2
    Expert confirmé

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Par défaut
    Je me demande comment cela peut fonctionner pour "lire" étant donné que tu fais appel à une fonction Javascript setHidden() alors que la fonction Javascript définie dans la jsp est set().
    De plus, tu as codé deux attributs onchange dans le tag select.

    Enfin, le form-bean s'appellant modification1Form, dans la fonction Javascript, il faut donc coder :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    function set(target) {document.modification1Form.operation.value=target;}

  3. #3
    Membre confirmé
    Inscrit en
    Septembre 2007
    Messages
    233
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 233
    Par défaut
    Citation Envoyé par c_nvy Voir le message
    Je me demande comment cela peut fonctionner pour "lire" étant donné que tu fais appel à une fonction Javascript setHidden() alors que la fonction Javascript définie dans la jsp est set().
    De plus, tu as codé deux attributs onchange dans le tag select.

    Enfin, le form-bean s'appellant modification1Form, dans la fonction Javascript, il faut donc coder :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    function set(target) {document.modification1Form.operation.value=target;}
    Oui pour votre première remarque c'est une erreur que j'ai commis lors de mes modifications ,j'ai oublié de remplacer le setHidden par le set maintenant c'est fait merci.

    Pour le onchange vue qu'il s'agit d'une liste déroulante sur laquelle je doit gerer deux actions. D'abord je dois récupérer l'année séléctionnée puis déclancher la fonction lire, bon j'ai trouver ceci bizarre moi aussi mais ça marche sinon vous me propser quoi comme alterantive pour utilser un seul onchange au lieu de deux.

    Pour le 3eme point c'est bon .

  4. #4
    Expert confirmé

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Par défaut
    Tout simplement comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <html:select property="annee" onchange="set('lire');submit();">

  5. #5
    Membre confirmé
    Inscrit en
    Septembre 2007
    Messages
    233
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 233
    Par défaut
    Je viens de corriger mon code en tenant compte de vos remarques c nvy ,la bonne nouvelle c'est que l'erreur n'est plus.Mais rien ne se passe quand je clique sur mon bouton save sachant que la fonction lire marche bien comme au départ.

    Est ce que j'ai oublié un autre truc par hazard ?

  6. #6
    Expert confirmé

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Par défaut
    Oui, il faut ajouter le tag html:hidden dans le tag html:form avec une valeur par défaut, par exemple lire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
       <html:hidden property="operation" value="lire"/>
    D'ailleurs, je ne vois pas de tag html:form dans le code de la jsp.

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

Discussions similaires

  1. Probleme avec DispatchAction
    Par tomy29 dans le forum Struts 1
    Réponses: 20
    Dernier message: 06/11/2008, 16h09
  2. Probleme avec DispatchAction
    Par L Ankou dans le forum Struts 1
    Réponses: 3
    Dernier message: 11/02/2008, 09h56
  3. probleme avec DispatchAction
    Par ayoub2010 dans le forum Struts 1
    Réponses: 9
    Dernier message: 05/05/2007, 12h16
  4. Probleme avec fseek
    Par Bjorn dans le forum C
    Réponses: 5
    Dernier message: 04/08/2002, 07h17
  5. [Kylix] probleme avec un imagelist
    Par NicoLinux dans le forum EDI
    Réponses: 4
    Dernier message: 08/06/2002, 23h06

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