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 :

Tag ajoutant un action mapping


Sujet :

Struts 1 Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juillet 2005
    Messages
    95
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 95
    Par défaut Tag ajoutant un action mapping
    Hello,

    Je crée un tag qui doit générer un nouvel action-mapping, j'ai pour l'instant l'erreur suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    could not write data: java.lang.IllegalStateException: Configuration is frozen
    Le tag prend en paramètre l'Action struts à executer (getAction()) et le module, c'est pourquoi je génére un .do aléatoire.

    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 int doStartTag() throws JspException{
    ...
      String strutsPath = "";
      if(module != null && module.length() > 0){
    	strutsPath += module + "/";
      }
      strutsPath += "gen" + (int)(Math.random() * RANDOM_SIZE) + ".do";
     
      HttpServletRequest request = (HttpServletRequest)        
    pageContext.getRequest();
     
      ModuleConfig config = ModuleUtils.getInstance().getModuleConfig(request);
     
      ActionMapping actionMapping = new ActionMapping();
      actionMapping.setPath(strutsPath);
      actionMapping.setType(Class.forName(getAction()).getName());
      config.addActionConfig(actionMapping);
    ...
    }
    Mon idée est-elle utopique?

    Merci

  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
    A ma connaissance, ajouter un mapping dans le struts-config.xml n'a pas de raison d'être dans la mesure où celui-ci est chargé en mémoire par l'ActionServlet à l'initialisation de l'application.
    Donc, même si la méthode addConfigAction ne générait pas d'erreur, le nouveau mapping serait je pense ignoré car non présent en mémoire.
    Par contre, il est peut-être possible d'ajouter un mapping en mémoire.
    Pour le vérifier, il va falloir mettre le nez dans les sources de Struts.
    Bon courage.

    Par contre, pourrais-tu expliquer précisément pourquoi tu as un besoin d'un tel tag ?

  3. #3
    Membre confirmé
    Inscrit en
    Juillet 2005
    Messages
    95
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 95
    Par défaut
    Le tag permettrait de générer dans la page le formulaire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <form action="gen023161.do" >
    et ajouterait le mapping du .do et l'Action struts dynamiquement avec juste la méthode du BusinessObject en paramètre

  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
    Excuse-moi mais je n'arrive pas à voir l'intérêt d'un tel tag.
    Manifestement, il y a quelque chose qui m'échappe.

  5. #5
    Membre confirmé
    Inscrit en
    Juillet 2005
    Messages
    95
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 95
    Par défaut
    L'idée c'est d'avoir un tag qui génére le formulaire et affiche les données à partir d'un DataObject et d'une méthode qui prend en paramètre le DataObject et qui affichera les données

    Le tag est le suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <gen:gen DataObject="com.gen.impl.DoObjectImpl" module="main" action="com.gen.impl.ActionSubmit" cssClass="tableCamp"/>
    Je génére un formulaire à partir des champs du DataObject

    ActionSubmit implemente la méthode ce qui va retourner les données lorsqu'on va submiter le formulaire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     BoExample boExample = new BoExample();		
     return boExample.getSearch(search);
    "search" est rempli par les données saisi dans le formulaire.

    Cela cacherait tout le struts

  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
    C'est "sioux" comme idée mais je ne pense pas que cela soit possible.
    Enfin, ça n'engage que moi.
    J'ai bien peur que là, ça dépasse mes compétences.

  7. #7
    Membre confirmé
    Inscrit en
    Juillet 2005
    Messages
    95
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 95
    Par défaut
    Citation Envoyé par c_nvy Voir le message
    Par contre, il est peut-être possible d'ajouter un mapping en mémoire.
    Pour le vérifier, il va falloir mettre le nez dans les sources de Struts.
    Tu as des indices là-dessus ?

    Merci pour tes réponses rapides!

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

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Alors, on peut le faire via ModuleConfig

    Pour le récupérer, tu peux passer par ActionMapping
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  9. #9
    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
    Citation Envoyé par OButterlin Voir le message
    Alors, on peut le faire via ModuleConfig
    Pour récupérer la config existante oui, mais si arnobidul essaie de la modifier, comme elle a été gélée via la méthode freeze(), je pense qu'il va obtenir le même message d'erreur :
    java.lang.IllegalStateException: Configuration is frozen
    non ?

  10. #10
    Membre confirmé
    Inscrit en
    Juillet 2005
    Messages
    95
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 95
    Par défaut
    Oui je faisais déjà :

    Citation Envoyé par arnobidul Voir le message

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     
      HttpServletRequest request = (HttpServletRequest)        
    pageContext.getRequest();
     
      ModuleConfig config = ModuleUtils.getInstance().getModuleConfig(request);
     
      ActionMapping actionMapping = new ActionMapping();
      actionMapping.setPath(strutsPath);
      actionMapping.setType(Class.forName(getAction()).getName());
      config.addActionConfig(actionMapping);
    ...
    }

Discussions similaires

  1. Création d'Action Mapping personnalisée.
    Par DarkWark dans le forum Struts 1
    Réponses: 22
    Dernier message: 18/06/2007, 12h23
  2. [DX9][C#]Direct Input - Action mapping
    Par Imhotep dans le forum DirectX
    Réponses: 4
    Dernier message: 06/07/2006, 23h15
  3. Liens html pour un éditeur (ajouter une action javascript à un lien html)
    Par psychoBob dans le forum Général JavaScript
    Réponses: 17
    Dernier message: 25/05/2006, 18h41
  4. [tags] ajouter des listes de choix?
    Par NicolasG dans le forum Evolutions du club
    Réponses: 17
    Dernier message: 24/01/2006, 20h56
  5. [Struts][Tiles] Probleme d'action mapping avec un dynaform
    Par bluefox_du_974 dans le forum Struts 1
    Réponses: 3
    Dernier message: 28/03/2005, 22h47

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