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 :

Ressource disponible qu'une seule fois


Sujet :

Struts 1 Java

  1. #1
    Membre éclairé

    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    639
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 639
    Par défaut Ressource disponible qu'une seule fois
    Bonsoir,

    J'ai une JSP qui avec un <layout:button> ouvre un popup (via du javascript) dans lequel j'ai un formulaire.
    En validant le formulaire je ferme mon popup et reviens sur la jsp appelante dont l'affichage a été modifié en fonction de ce que j'ai saisi dans le formulaire de mon popup.
    Tout fonctionne bien jusque là.
    Mon problème se pose si je reclique sur le <layout:button> une deuxieme fois pour ré ouvrir mon popup : j'obtiens le message erreur 404:
    type Rapport d'état
    message /managePlanning.do
    description La ressource demandée (/managePlanning.do) n'est pas disponible.
    Je me demande donc ce qui peut rendre la ressource indisponible alors qu'elle l'était qq secondes plus tôt?
    Si vous avez une piste...
    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
    Peux-tu montrer le code de la fonction Javascript ?

  3. #3
    Membre éclairé

    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    639
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 639
    Par défaut
    Fonction de ma JSP appelante qui ouvre le popup
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        function Ouvrir(url) {
    	alert(url);
    w=window.open(url,'_blank','width=790,height=500,top=200,left=300,scrollbars=1,resize=1');
        }
    Fonction de mon popup qui le ferme et recharge la JSP appelante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    	function set(target) {
    		document.goToPlanning.reqCode.value=target;
    		window.opener.location.href="<%=request.getContextPath()%>/managePlanning.do?reqCode=createPatient";
    		window.close();
    		}

  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
    Dans l'url que tu passes en paramètre de la fonction Ouvrir, y as-tu ajouté le contexte comme dans la fonction set ?

  5. #5
    Membre éclairé

    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    639
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 639
    Par défaut
    J'ai changé en
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function Ouvrir(url) {
    	alert(url);
    w=window.open(<%=request.getContextPath()%>+url,'_blank','width=790,height=500,top=200,left=300,scrollbars=1,resize=1');
        }
    pour voir, mais l'erreur est la meme

  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
    Quand tu reviens sur la jsp appelante après fermeture de la popup, quelle url s'affiche dans la barre d'Adresse ?

  7. #7
    Membre éclairé

    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    639
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 639
    Par défaut
    J'ai corrigé ma fonction , il manquait les double quotes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "<%=request.getContextPath()%>"
    Mais une chose bizarre, à la fermeture de mon popup, il passe deux fois dans la methode CreatePatient de mon DispatchAction ManagePlanning...

  8. #8
    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
    Effectivement, avec les doubles quotes, cela doit fonctionner mieux.

    Sinon, peux-tu montrer le code de la popup ?

  9. #9
    Membre éclairé

    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    639
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 639
    Par défaut
    Et oui, ça fait bcp de chose à ingurgiter d'un coup.
    Code xml : 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
    26
    27
    28
    29
    30
    31
    32
    <%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>
    <%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic" %>
    <%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>
    <%@ taglib uri="/WEB-INF/struts-layout.tld" prefix="layout" %>
    	<head>
     
    		    <link rel='stylesheet' 
                media='screen' 
                type='text/css' 
                title='Design' 
                href='<%=request.getContextPath()%>/css/main.css'/>
    			<layout:skin includeScript="true"/>
     
    	</head>
     
    <SCRIPT>
    	function set(target) {
    		document.goToPlanning.reqCode.value=target;
    		window.opener.location.href="<%=request.getContextPath()%>/managePlanning.do?reqCode=createPatient";
    		window.close();
    		}
    </SCRIPT>	
     
    <layout:form action="/managePlanning" styleClass="FORM" key="creation.patient">
    	<html:hidden name="goToPlanning" property="reqCode" value=""/>
    	<layout:text key="nom.patient" property="nom"  styleClass="LABEL"></layout:text>
    	<layout:text key="prenom.patient" property="prenom"  styleClass="LABEL"></layout:text>
     	<layout:date  key="birth.patient" property="dateBirth"  mode="E,E,E" patternKey="yyyy-MM-dd" startYear="1930"  styleClass="LABEL"/>
    	<html:submit onclick="set('createPatient');">
    		<bean:message key="patient.validate"/>
    	</html:submit>
    </layout:form>

  10. #10
    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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    	<html:submit onclick="set('createPatient');">
    		<bean:message key="patient.validate"/>
    	</html:submit>
    Voilà pourquoi l'Action est soumise deux fois.
    Il ne faut pas combiner submit+onclick.

  11. #11
    Membre éclairé

    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    639
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 639
    Par défaut
    effectivement,
    meme moi j'aurais pu le deviner, franchement...

  12. #12
    Membre éclairé

    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    639
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 639
    Par défaut
    En fait un petit soucis est venu se greffé suite a ma modification :
    J'ai changé mon <html:submit> en <html:button> pour qu'il ne passe qu'une fois dans la methode. Le soucis c'est qu'évidemment comme il n'y a plus de submit, mon Action ne récupère pas les valeurs de mon formulaire.
    J'ai donc fait l'inverse : garder le html:submit et enlever :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    window.opener.location.href="<%=request.getContextPath()%>/managePlanning.do?reqCode=createPatient";
    Ma fonction devenant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function set(target) {
    	document.goToPlanning.reqCode.value=target;
    	window.close();
    }
    A la fin de ma méthode créationPatient, je redirige vers l'action goToPlanning pour recharger la JSP appelante. Le soucis c'est que les données affichées ne sont pas mises à jour (pour info, le petit flag firefox en haut a gauche ne s'active pas, la petite roue pointillée). Il faut que je reclick sur le bouton qui exécute l'action goToPlanning pour qu'elles soient mise à jour (cette fois-ci, le petit flag firefox en haut a gauche s'active bien, pourtant je passe dans goToPlanning dans les deux cas!!).

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

Discussions similaires

  1. Charger une seule fois les ressources image pour contrôle graphique
    Par florenzau dans le forum Interfaces Graphiques en Java
    Réponses: 4
    Dernier message: 08/01/2013, 16h24
  2. [DLL] Ma DLL execute le Timer une seul fois !
    Par TOTO32 dans le forum Langage
    Réponses: 14
    Dernier message: 13/08/2005, 20h37
  3. Réponses: 1
    Dernier message: 19/03/2005, 22h47
  4. Réponses: 18
    Dernier message: 10/02/2005, 13h22
  5. Réponses: 2
    Dernier message: 30/11/2004, 11h48

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