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 :

former un lien avec la balise html:link


Sujet :

Struts 1 Java

  1. #1
    Membre du Club
    Inscrit en
    Juillet 2003
    Messages
    175
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 175
    Points : 48
    Points
    48
    Par défaut former un lien avec la balise html:link
    Salut
    j´ai eu a fouiller ici les interventions sur la formation des liens avec la balise html:link...
    j´ai pu lire un post ou l´on a donné comme exemple ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <logic:iterate name="nomDuFormBean" property="usersList" id="user">
       <html:link action="pathAction" name="user" property="userMap">
           <bean:write name="user" property="nom"/>
       </html:link>
    </logic:iterate>
    Mon probleme c´est que je ne sais pas qui fait quoi dans ce lien.

    Moi par exemple je dois afficher une page en cliquand sur un lien ou je ne peux que recuperer le id

    je voudrai savoir que representera pour moi le nomDuFormBean? c´est ma classe ou table ou je vais recuperer les données?

    le property="usersList"? que represente il? ainsi de suite je voudrai savoir le role de chacun ou alors si vous avez un lien ou c´est expliqué ?

    Merci

  2. #2
    Expert éminent

    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
    Points : 7 778
    Points
    7 778
    Par défaut
    Dans l'exemple que tu donnes, on itère sur la collection d'utilisateurs usersList.
    Cette collection est une propriété du form-bean (ActionForm), ce qui explique le name="nomDuFormBean".
    Et donc, à l'affichage de cette collection, sur chaque nom d'utilisateur, on met un lien qui permet l'exécution d'une Action à laquelle on passe en paramètre une Map.

    Tu dis vouloir afficher une page en cliquant sur un lien avec en paramètre un id.
    As-tu également une liste à afficher ? Dois-tu avoir un lien pour chaque élément de la liste ?
    Bref, peux-tu préciser ton besoin ? et même poster un bout de code.

  3. #3
    Membre du Club
    Inscrit en
    Juillet 2003
    Messages
    175
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 175
    Points : 48
    Points
    48
    Par défaut
    Ok merci pour la reponse. Dans mon cas, je dois fabriquer un lien pour chaque element de ma liste.
    Pour le moment j´utilise ceci(mais je voudrais changer en utilisant la balise <html:link>):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     <c:forEach items="${pub}" var="publish" begin="0" end="14">
     
    	<tr ><td align="left">
     
    	<a href="<%=request.getContextPath() %>/publish/List.do?publishId=${publish.id}" >	
    	 ${publish.name}</a>
     
     <br>
    	</td></tr>	  
    </c:forEach>
    var=publish ----> ma table
    items="${pub}" ------> provient du request.setattribute de mon public ActionForward execute de la classe ListPublishAction qui recupere de mon DAO tous les elements de la requete :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    request.setAttribute("pub", getAll());
    et mon struts-config ou cela pointe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <action scope="request"
             path="/publish/List" 
             type="ListPublishAction">
    		<forward name="success" path="/WEB-INF/jsp/publish/List.jsp" />
    	</action>
    je voudrai donc faire ce lien avec ces elements la...
    Merci

  4. #4
    Expert éminent

    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
    Points : 7 778
    Points
    7 778
    Par défaut
    Essaie simplement ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     <c:forEach items="${pub}" var="publish" begin="0" end="14">
     
    	<tr ><td align="left">
     
    	<html:link action="List.do?publishId=${publish.id}" >	
    	 ${publish.name}
            </html:link>
     
     <br>
    	</td></tr>	  
    </c:forEach>
    ou ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     <c:forEach items="${pub}" var="publish" begin="0" end="14">
     
    	<tr ><td align="left">
     
    	<html:link action="List" paramId="publishId" paramName="publish" paramProperty="id">	
    	 ${publish.name}
             </html:link>
     
     <br>
    	</td></tr>	  
    </c:forEach>

  5. #5
    Membre du Club
    Inscrit en
    Juillet 2003
    Messages
    175
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 175
    Points : 48
    Points
    48
    Par défaut
    hi,
    j´ai ce message d´erreur lorsque j´execute la nouvelle proposition:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    javax.servlet.jsp.el.ELException: The "." operator was supplied with an index value of type "java.lang.String" to be applied to a List or array, but that value cannot be converted to an integer.

  6. #6
    Expert éminent

    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
    Points : 7 778
    Points
    7 778
    Par défaut
    Avec laquelle, la première ou la deuxième ?

  7. #7
    Membre du Club
    Inscrit en
    Juillet 2003
    Messages
    175
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 175
    Points : 48
    Points
    48
    Par défaut
    la deuxieme...

  8. #8
    Expert éminent

    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
    Points : 7 778
    Points
    7 778
    Par défaut
    C'est bizarre.
    Tu as bien codé exactement comme moi ? (enfin, il fallait juste ajouter publish dans le path de l'Action parce que je l'avais oublié)

    Sinon, essaie ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     <c:forEach items="${pub}" var="publish" begin="0" end="14">
     
    	<tr ><td align="left">
     
    	<html:link action="publish/List" paramId="publishId" paramName="publish" paramProperty="id">	
    	    <bean:write name="publish" property="name"/>
             </html:link>
     
     <br>
    	</td></tr>	  
    </c:forEach>
    sans oublier d'ajouter au début de la jsp la directive taglib qui pointe sur la tld struts-bean.tld.

  9. #9
    Membre du Club
    Inscrit en
    Juillet 2003
    Messages
    175
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 175
    Points : 48
    Points
    48
    Par défaut
    merci ca marche il fallait (comme vous l´avez rectifié) remplacer le ${publish.name} par <bean:write name="publish" property="name"/>

    Merci bcp.

  10. #10
    Expert éminent

    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
    Points : 7 778
    Points
    7 778
    Par défaut
    Et pourtant, ça devrait fonctionner avec ${publish.name}.

    Peux-tu montrer le web.xml stp ?
    Et peux-tu préciser quel serveur d'application tu as et sa version ?

  11. #11
    Membre du Club
    Inscrit en
    Juillet 2003
    Messages
    175
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 175
    Points : 48
    Points
    48
    Par défaut
    mon Web.xml :

    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
     
     
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
    	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    	xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
    	http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
     
    	<!-- SERVLET -->
    	<servlet>
    		<servlet-name>action</servlet-name>
    		<servlet-class>
    			org.apache.struts.action.ActionServlet
    		</servlet-class>
    		<init-param>
    			<param-name>config</param-name>
    			<param-value>/WEB-INF/struts-config.xml</param-value>
    		</init-param>
    		<init-param>
    			<param-name>debug</param-name>
    			<param-value>3</param-value>
    		</init-param>
    		<init-param>
    			<param-name>detail</param-name>
    			<param-value>3</param-value>
    		</init-param>
    		<load-on-startup>0</load-on-startup>
    	</servlet>
     
     
    	<servlet-mapping>
    		<servlet-name>action</servlet-name>
    		<url-pattern>*.do</url-pattern>
    	</servlet-mapping>
     
    </web-app>
    je suis sur Tomcat 5.5
    A bientot

  12. #12
    Expert éminent

    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
    Points : 7 778
    Points
    7 778
    Par défaut
    Tu es donc bien en J2EE 1.4 (Servlet 2.4/JSP 2.0) comme je le supposais et je ne comprends donc pas pourquoi l'utilisation de l'EL ${publish.name} provoque une erreur.

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 23/04/2009, 15h04
  2. [CSS 2] Formatage des liens avec la balise <a>
    Par paolo129 dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 15/04/2009, 13h46
  3. erreur dans ma balise html:link
    Par makohsarah dans le forum Struts 1
    Réponses: 3
    Dernier message: 25/05/2008, 13h25
  4. Problème avec la balise <html:select
    Par rawanex dans le forum Struts 1
    Réponses: 5
    Dernier message: 16/04/2007, 13h28
  5. [Struts] balise <html:link>
    Par PeteMitchell dans le forum Struts 1
    Réponses: 7
    Dernier message: 26/04/2004, 21h35

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