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 :

Ouvrir ou pas une popup


Sujet :

Struts 1 Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 109
    Points : 68
    Points
    68
    Par défaut Ouvrir ou pas une popup
    Bonjour,

    Voici mon problème:
    Je reprends un projet avec du struts.
    Lorsque l'utilisateur appuie sur un bouton en dessous d'un premier formulaire, cela lui ouvre une popup et lui présente un deuxième formulaire.
    Lorsqu'il valide ce deuxième formulaire dans la popup en cliquant sur le deuxième bouton, un message lui indiquant toutes les erreurs des deux formulaires apparaît...
    Il est obligé de fermer la popup pour corriger son premier son formulaire et recommencer l'opération...

    Vous vous doutez bien que ce que je souhaite c'est:
    On click sur le 1er bouton, ça va dans l'action vérifier les données de ce premier formulaire.
    Si c'est faux, j'affiche dans cette même page les erreurs.
    Si tout est bon, cela ouvre la popup

    On click sur le bouton de la popup, s'il y a des erreurs (que ceux de la popup du coup) ils sont affichés sur la popup. Sinon ça valide l'action et on ferme la popup.

    J'ai donc
    - deux JSP

    pageprincipale.jsp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <html:form action="verifierpageprincipale.do" ...>
    <html:submit styleId="idBoutonSubmit"....>
    mapopup.jsp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <html:form action="verifierpopup.do" ...>
    <html:submit styleId="idBoutonSubmit"....>

    - trois classes Action (il y avait déjà la MaPopupVerifAction et ma MaPopupValiderAction):

    PagePrincipaleAction.java que j'ai ajouté en repportant les vérifications qui étaient faites dans MaPopupVerifAction avant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ...testsdelapremierepage();...
    if(erreurs.isEmpty())
    {return am.findForward(IConstants.SUCCESS);}
    else {return am.findForward(IConstants.FAILURE);}
    MaPopupVerifAction.java

    MaPopupValiderAction.java

    et mon strusts-config.xml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <action path="/pageprincipale" type="PagePrincipaleAction"...>
      			<forward name="failure" path="/pageprincipale.do" ></forward>
      			<forward name="success"  path="/mapopup.do" ></forward>
      		</action>
    <action path="/mapopup"     type="MaPopupVerifAction"	...>
      			<forward name="success" path="validermapopup" ></forward>
    </action>	
    <action path="/validermapopup" type="MaPopupValiderAction"...>
                     <forward name="success" path="popupcloseDef" redirect="true"/>
    		<forward name="cancel" path="popupcloseNoRefreshDef" redirect="true"/>
    </action>


    Ce que je voudrais c'est genre faire
    <forward name="failure" path="/pageprincipale.do" ></forward>
    <forward name="success" TARGET:nouvelleFenetre path="/mapopup.do" ></forward>
    OU en java faire un openPopup(am.findForward(IConstants.SUCCESS));
    OU donnez moi des astuces svp!

    N'hésitez pas si je ne suis pas claire...
    Merci d'avance

  2. #2
    Modérateur
    Avatar de kolodz
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2008
    Messages
    2 211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 211
    Points : 8 318
    Points
    8 318
    Billets dans le blog
    52
    Par défaut
    Pourquoi avoir une popup en premier lieu ?
    Soit la popup permet de remplir une sous partir du formulaire principal et là, le comportement est justifié.
    Soit la popup présente un nouveau formulaire et là, la popup n'est nécessaire et contre productif.

    Cordialement,
    Patrick Kolodziejczyk
    Si une réponse vous a été utile pensez à
    Si vous avez eu la réponse à votre question, marquez votre discussion
    Pensez aux FAQs et aux tutoriels et cours.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 109
    Points : 68
    Points
    68
    Par défaut Trouvé
    Effectivement la popup est plus ou moins la suite du formulaire... Fonctionnellement, je ne vois aucun avantage... mais c'est ce qui est demandé par le client...

    J'ai une grosse piste qui a l'air de fonctionner pas trop mal (j'ai un cas bizarre mais je me demande si c'est lié):
    Je reviens sur ma page principale avec une nouvelle variable que j'initialise différemment que le 1er formulaire soit ok ou pas.
    Si il y a des problèmes, j'affiche les erreurs
    Si tout va bien, je fais en javascript l'appel à l'ouverture de la popup qui elle rafraîchit la page principale au retour...

    dans mon PagePrincipaleAction.java
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if (!err.isEmpty()) {
    			saveErrors(req, (ActionMessages) err);
    			return am.findForward(IWebConstants.FAILURE);
    		}
    		monForm.setEmissionValide("true");
    		return am.findForward(IWebConstants.SUCCESS);
    ^

    dans ma jsp

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <logic:equal name="monForm" property="emissionValide" value="true">
    				<script>
    					showDialogRetour('mapopup.do','','scroll:yes;dialogHeight:350px;dialogWidth:500px;','pageprincipale.do?idDI=${DemIntBean.id}','');
     
    				</script>
    			</logic:equal>
    et mon struts-config.xml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <action path="/pageprincipale" type="PagePrincipaleAction"...>
      			<forward name="failure" path="/pageprincipale.do" ></forward>
      			<forward name="success"  path="/pageprincipale.do" ></forward>
      		</action>
    <action path="/mapopup"     type="MaPopupVerifAction"	...>
      			<forward name="success" path="validermapopup" ></forward>
    </action>	
    <action path="/validermapopup" type="MaPopupValiderAction"...>
                     <forward name="success" path="popupcloseDef" redirect="true"/>
    		<forward name="cancel" path="popupcloseNoRefreshDef" redirect="true"/>
    </action>

    La fonction javascript pour l'ouverture de la popup et le rafraîchimment de la principale (déjà dans la trousse du projet dans mesFonctions.js)
    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
    function showDialogRetour(url,parms,options, urlRetour, urlRetour2) {
    	if (parms ==''){
    		parms='popup';
    	}
    	var str = window.showModalDialog(url, parms, options);
        if (str=='Refresh') {  	
            if (urlRetour=='submit') {
                window.document.forms[0].action.value='';
                window.document.forms[0].submit();
            } else {
            	blockUI();
                window.location.href=urlRetour;
            }
        }
        if (str=='Refresh2') {
        	blockUI();
        	window.location.href=urlRetour2;
        }
        if (str=='Logout') {
        	blockUI();
        	window.location.href="welcome.do";
      	}	    	
    }

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

Discussions similaires

  1. [Test] Selenium IDE ne reconnais pas une popup
    Par Blaine dans le forum Test
    Réponses: 0
    Dernier message: 28/04/2010, 15h14
  2. [Struts javascript] ouvrir plusieurs fois une popup
    Par jc_romeo dans le forum Struts 1
    Réponses: 2
    Dernier message: 02/03/2006, 09h36
  3. Ouvrir une popup en plein écran avec une barre de menu.
    Par magic8392 dans le forum Général JavaScript
    Réponses: 21
    Dernier message: 12/10/2005, 10h43
  4. Ouvrir une popup non redimensionnable sur clique
    Par magic8392 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 14/09/2005, 09h44
  5. Tester si une popup est ouverte si oui en ouvrir une autre
    Par Prue dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 17/08/2005, 09h32

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