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 :

Action, sans ActionForm?


Sujet :

Struts 1 Java

  1. #1
    Membre expérimenté Avatar de maxf1
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 229
    Points : 1 371
    Points
    1 371
    Par défaut Action, sans ActionForm?
    Bonjour à toutes et à tous,

    Petite question du jour,

    Est-il possible de passer par une action sans avoir d'actionForm rattaché à cette action.
    J'explique le pourquoi du comment. J'ai une page, ou je souhaiterais chargé un fichier. Donc dans ma page, un seul bouton censé faire appel a la classe de chargement.

    Je voulais donc en faire une action et appelé le chargement dans cette action.
    Donc est-ce possible? Si oui est ce bien "pensé" pour éviter le code dans la jsp ou bien est-il préférable de la faire via une fonction javascript sur le onclick()??

    Le code que j'ai deja commencé à faire : JSP:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <html>
      <body>
        <html:form action="/loadFile">
          <html:submit property="submit"/>
        </html:form>
      </body>
    </html>
    Struts config :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <action path="/loadFile" type="com.maxf1.struts.forum.action.LoadFileAction" 
    scope="request" />
    Et puis l'action c'est une action classique.

    Je me doute que mon jsp n'est pas bon, car la balise <html:form> fait appel à un formulaire. Mais je n'ai pas trouvé ce que je peux mettre à la place.

    Merci de votre aide.
    Une solution a été apporté pour résoudre votre problème alors vous aussi faites en profitez les autres grâce au tag qui se trouve tout en bas de la page....

    Merci de ne pas utiliser les messages privés pour un problème sauf si je vous l'ai explicitement demandé.

    -- Maxf1 --

  2. #2
    Membre expérimenté Avatar de maxf1
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 229
    Points : 1 371
    Points
    1 371
    Par défaut
    Pas beaucoup de réponse aujoud'hui. J'ai trouvé une parti de ma réponse.
    Ce que j'essaye de faire est bien faisable :

    http://www.theserverside.com/tt/arti...sActionMapping


    Par contre il ne donne pas d'exemple, il dise juste ce que j'ai dit a savoir que la balise <html:form> attend automatiquement un formulaire.
    Donc il faut l'appeler avec quelque chose d'autre, mais quoi.........


    C'est le bout de ma question qu'il reste encore à élucider!!
    Une solution a été apporté pour résoudre votre problème alors vous aussi faites en profitez les autres grâce au tag qui se trouve tout en bas de la page....

    Merci de ne pas utiliser les messages privés pour un problème sauf si je vous l'ai explicitement demandé.

    -- Maxf1 --

  3. #3
    Membre expérimenté Avatar de maxf1
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 229
    Points : 1 371
    Points
    1 371
    Par défaut
    Alors c'est bon je viens de prétrouver ma réponse, qui est d'ailleurs dans la page que j'ai donné en lien juste en dessous.
    Il suffit d'utiliser un Link.

    Mais cette reponse en appel une autre.

    J'ai mis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    	<html:link action="/loadFile">lien
    		<html:submit property="submit"/>
    	</html:link>
    Ca m'affiche bien mon lien, et aussi mon bouton submit.
    Quand je clique sur le lien il va dans mon action.
    Mais quand je clique sur le bouton rien ne se passe, pourquoi?
    Une solution a été apporté pour résoudre votre problème alors vous aussi faites en profitez les autres grâce au tag qui se trouve tout en bas de la page....

    Merci de ne pas utiliser les messages privés pour un problème sauf si je vous l'ai explicitement demandé.

    -- Maxf1 --

  4. #4
    Membre éprouvé
    Avatar de yolepro
    Profil pro
    Architecte de système d'information
    Inscrit en
    Mai 2002
    Messages
    918
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Mai 2002
    Messages : 918
    Points : 1 144
    Points
    1 144
    Par défaut
    Attends, il y a un truc que je ne comprend pas dans ton concept.

    Tu ne veux pas utiliser de formulaire dans une page et pourtant tu la soumets (submit) ?

    Je comprend pas ce que tu cherches à soumettre.
    Pourquoi ne fait tu pas un lien tout simple (sans le submit)?
    Etre c'est etre relatif.

  5. #5
    Membre expérimenté Avatar de maxf1
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 229
    Points : 1 371
    Points
    1 371
    Par défaut
    OUais mais en faite j'avais mis <html:submit> pour faire rapide pour afficher un bouton.

    En faite ca serait plutot, <input type="button" value="Load"/>
    Mais le probleme est le meme.

    Rien ne se passe lorsque j'appuie sur le bouton.
    Probleme ou normal que l'on ne puisse pas faire cela?

    Suis-je obliger de passer par un onclick dans lequel je dois faire une redirection?
    Une solution a été apporté pour résoudre votre problème alors vous aussi faites en profitez les autres grâce au tag qui se trouve tout en bas de la page....

    Merci de ne pas utiliser les messages privés pour un problème sauf si je vous l'ai explicitement demandé.

    -- Maxf1 --

  6. #6
    Membre éprouvé
    Avatar de yolepro
    Profil pro
    Architecte de système d'information
    Inscrit en
    Mai 2002
    Messages
    918
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Mai 2002
    Messages : 918
    Points : 1 144
    Points
    1 144
    Par défaut
    Tu ne peux pas faire de bouton de formulaire si tu n'as pas de formulaire.

    Donc le plus simple est de faire un faux bouton (image) et d'en faire un lien
    Etre c'est etre relatif.

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

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 311
    Points : 9 524
    Points
    9 524
    Billets dans le blog
    1
    Par défaut
    Et bien si, tu peux le faire. Rien n'oblige à avoir un ActionForm pour une classe Action, j'ai tester le code suivant :

    La page JSP
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    <%@ taglib uri="/WEB-INF/struts-html" prefix="html" %>
     
    <html:html>
    <head>
        <title></title>
    </head>
    <body>
    On fait juste un test...
        <form action="<%=request.getContextPath()%>/test.do">
        <input type="submit" value="Envoyer"/>
        </form>
    </body>
    </html:html>
    La classe 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
     
    package test;
     
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import org.apache.struts.action.Action;
    import org.apache.struts.action.ActionForm;
    import org.apache.struts.action.ActionForward;
    import org.apache.struts.action.ActionMapping;
     
    public class TestAction extends Action 
    {
        public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response)
        {
            System.out.println("On passe dans execute...");
            return mapping.findForward("ok");
        }
    }
    Le fichier struts-config.xml (partiel mais sans form)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ...
      <action path="/test" type="test.TestAction" validate="false" />
    ...
    A+
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  8. #8
    Membre éprouvé
    Avatar de yolepro
    Profil pro
    Architecte de système d'information
    Inscrit en
    Mai 2002
    Messages
    918
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Mai 2002
    Messages : 918
    Points : 1 144
    Points
    1 144
    Par défaut
    Citation Envoyé par OButterlin
    <form action="<%=request.getContextPath()%>/test.do">
    <input type="submit" value="Envoyer"/>
    </form>
    Tu ne fais pas du Struts la tu fais du HTML standard.
    Etre c'est etre relatif.

  9. #9
    Membre expérimenté Avatar de maxf1
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 229
    Points : 1 371
    Points
    1 371
    Par défaut Lien sur un bouton
    En faite comme je l'ai écrit c'est faisable avec mon code.

    Mon probleme serait plus de l'ordre visuel.

    JE fais un

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <html:link page="cequelonveut.jsp">lien
    <input type="button" value="Load" >
    </html:link>
    Mais lors de l'appuie sur le bouton ca ne vas pas vers le lien.
    Alors que si je clique sur le mot lien on va sur la page.
    Y a t-il un moyen d'acceder au lien en appuyant sur le bouton autre que part une image qui ressemble à un bouton, ou a un javascript?
    Une solution a été apporté pour résoudre votre problème alors vous aussi faites en profitez les autres grâce au tag qui se trouve tout en bas de la page....

    Merci de ne pas utiliser les messages privés pour un problème sauf si je vous l'ai explicitement demandé.

    -- Maxf1 --

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

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 311
    Points : 9 524
    Points
    9 524
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par yolepro
    Tu ne fais pas du Struts la tu fais du HTML standard.
    Je fais du Struts et ça ne m'oblige pas au utiliser les tags (surtout quand ils ne sont pas capables de faire un truc aussi simple !)

    A+
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  11. #11
    Membre expérimenté Avatar de maxf1
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 229
    Points : 1 371
    Points
    1 371
    Par défaut
    J'ai pas eu la réponse a ma question concernant le bouton mais c'est pas grave. Dans ce poste il y a tout pour faire une action sans actionform, l'inverse est vrai dans le lien que j'ai mis juste au dessus/dessous.
    Une solution a été apporté pour résoudre votre problème alors vous aussi faites en profitez les autres grâce au tag qui se trouve tout en bas de la page....

    Merci de ne pas utiliser les messages privés pour un problème sauf si je vous l'ai explicitement demandé.

    -- Maxf1 --

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

Discussions similaires

  1. Faire une action sans forward
    Par restricteur dans le forum Struts 1
    Réponses: 1
    Dernier message: 29/05/2007, 16h41
  2. appel d'une Action sans Formulaire
    Par don'de dans le forum Struts 1
    Réponses: 8
    Dernier message: 21/03/2007, 15h48
  3. Réponses: 8
    Dernier message: 09/06/2006, 16h01
  4. [Struts][debutant]Action sans Form?
    Par sebus dans le forum Struts 1
    Réponses: 6
    Dernier message: 27/04/2006, 16h26
  5. [Struts]Executer une action sans ActionForm associé ?
    Par brousaille dans le forum Struts 1
    Réponses: 7
    Dernier message: 19/09/2005, 17h24

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