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 :

pagination, boucle dans jsp


Sujet :

Struts 1 Java

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 65
    Points : 33
    Points
    33
    Par défaut pagination, boucle dans jsp
    bonjour je cherche à faire une pagination :
    dans mon Action.java j'ai
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String pagerPage = request.getParameter("pagerPage") ;
    qui récupère le numéro de la page que je veux accéder.

    dans ma jsp
    je voudrais faire une boucle qui utilise la variable de mon Action
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     for (int i=0;i<j;i++){
    	<layout:link href="RefRegionsList.do?reqCode=display&pagerPage=<%= i %>">1</layout:link>;
    	<% }
    comment faire cette boucle ?

  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
    Comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <%
       for (int i=0;i<j;i++)
       {
    %>
          <layout:link action="RefRegionsList?reqCode=display&pagerPage=<%=i%>">
             <%=i>
          </layout:link>
    <% } %>
    ou avec une EL :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <%
       for (int i=0;i<j;i++)
       {
    %>
          <layout:link action="RefRegionsList?reqCode=display&pagerPage=${i}">
             ${i}
          </layout:link>
    <% } %>

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 65
    Points : 33
    Points
    33
    Par défaut
    en fait J est ici : nombre d'enregistrement/10
    nbr_enregistrement dans mon Action.java,

    comment récuperer dans ma jsp: la variable nbr_enregistrement que j'ai dans mon Action.java ?

  4. #4
    Membre éclairé Avatar de zorm
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    584
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 584
    Points : 672
    Points
    672
    Par défaut
    As tu essayé dans ton .java de mettre un

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    int nbr_enregistrement = 10;
    request.setAttribute("nbr_enregistrement", nbr_enregistrement) ;
    et dans ta jsp, tu peux le récuperer ainsi:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int j = (int)request.getAttribute("nbr_enregistrement");

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 65
    Points : 33
    Points
    33
    Par défaut
    mon action
    int nbr_enregistrement = 100;
    request.setAttribute("nbr_enregistrement", nbr_enregistrement) ;
    ma jsp
    <%
    int j = (Integer)request.getAttribute("nbr_enregistrement")/10;

    for (int i=0;i<j;i++)
    {
    %>
    <layout:link action="RefRegionsList?reqCode=display&pagerPage=<%=i %>">
    1
    </layout:link>
    <% } %>
    probleme dans l'url j'obtiens en cliquant
    RefRegionsList.do?reqCode=display&pagerPage=<%=i%>
    pagerPage null dans mon Action, il faut peut-être caster en String, comment ?

    j'ai aussi essayé avec les EL
    <%
    for (int i=0;i<j;i++)
    {
    %>
    <layout:link action="RefRegionsList?reqCode=display&pagerPage=${i}">
    ${i}
    </layout:link>
    <% } %>
    rien n'apparait, je ne vois pas de numéro de page peut-être je dois mettre:
    <c:set var="i" ></c:set>
    mais comment l'utiliser <c:set var="i"> ?

    et j'aimerai aussi rajouter des liens "<<" ">>" pour soustraire de -10 et additionner de +10 ma variable pagerPage.

  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
    Autant pour moi.

    La scriptlet et l'EL ne sont pas interprétées dans le tag layout:link.

    Essaie plutôt :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <%
       for (int i=0;i<j;i++)
       {
    %>
          <a href="<%=request.getContextPath()%>/RefRegionsList.do?reqCode=display&pagerPage=<%=i+1%>">
             <%=i+1%>
          </a>
    <% } %>
    Sinon, puisque tu utilises Struts-Layout, pourquoi ne pas utiliser tout simplement le tag layout:pager avec l'attribut maxPageItems ?

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 65
    Points : 33
    Points
    33
    Par défaut
    j'ai essayé tag layout:pager avec l'attribut maxPageItems, malheureusement je n'y suis pas arrivé , j'ai modifier le sort du struts-config, pour lui indiquer une Action.
    j'ai bien mes numéros de page et quand je clique sur un numéro, je n'ai plus que le numéro 1 et ce n'est plus un lien href

    j'ai une erreur
    java.io.CharConversionException: isHexDigit
    j'essaye de caster, ça ne marche pas
    <layout:link action="RefRegionsList?reqCode=display&pagerPage=<%=( i +1).toString() %>">
    <%= i + 1 %>
    </layout:link>

  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
    Citation Envoyé par bilobar Voir le message
    j'ai essayé tag layout:pager avec l'attribut maxPageItems, malheureusement je n'y suis pas arrivé , j'ai modifier le sort du struts-config, pour lui indiquer une Action.
    Normalement, pour utiliser le layout:pager, tu peux utiliser l'Action de path /sort de Struts-Layout.
    j'ai bien mes numéros de page et quand je clique sur un numéro, je n'ai plus que le numéro 1 et ce n'est plus un lien href
    C'est ce code-là qui n'est pas correct :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int j = (Integer)request.getAttribute("nbr_enregistrement")/10;
    Tu n'as pas pu faire ceci car int n'est pas un Object :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    int nbr_enregistrement = 100;
    request.setAttribute("nbr_enregistrement", nbr_enregistrement) ;
    Il faut donc transformer le int en Integer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    int nbr_enregistrement = 100;
    request.setAttribute("nbr_enregistrement", new Integer(nbr_enregistrement)) ;
    et dans la jsp :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int j = ((Integer) request.getAttribute("nbr_enregistrement")).intValue()/10;
    et remplace le tag <layout:link> par une balise <a> comme je te l'ai indiqué précédemment.

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 65
    Points : 33
    Points
    33
    Par défaut
    bien je n'ai plus l'erreur
    java.io.CharConversionException: isHexDigit
    avec
    int j = ((Integer) request.getAttribute("nbr_enregistrement")).intValue()/10;
    et balise <a>

    et j'arrive a obtenir le numro de la page cliqué
    String pagerPage = request.getParameter("pagerPage") ;
    je vai m'attaquer aux liens ">>" et "<<" pour ajouter +10 et soustraire -10 pages

  10. #10
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 65
    Points : 33
    Points
    33
    Par défaut
    En rechargeant mon site
    j'ai une erreur RefRegionsList.jsp': null
    avec dans ma jsp souligné en rouge has no values
    <% int j = ((Integer) request.getAttribute("nbr_enregistrement")).intValue()/10; %>
    Action
    int nbr_enregistrement = 100;
    request.setAttribute("nbr_enregistrement", new Integer(nbr_enregistrement)) ;
    ma jsp
    <% int j = ((Integer) request.getAttribute("nbr_enregistrement")).intValue()/10; %>

    <%
    for (int i=0;i<j;i++)
    {
    %>
    <a href="<%=request.getContextPath()%>/RefRegionsList.do?reqCode=display&pagerPage=<%=i+1%>">
    <%=i+1%>
    </a>
    <% } %>

  11. #11
    Membre éclairé Avatar de zorm
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    584
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 584
    Points : 672
    Points
    672
    Par défaut
    Je pense que tu devrais passer par le scope session plutot que le request pour ce problème la. Si je ne me trompe pas, des que tu recharges ta page, la durée de vie de ton précedent scope est dépassée et donc tu te fais bouler.

  12. #12
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 65
    Points : 33
    Points
    33
    Par défaut
    Comme ça ?
    <% int j = ((Integer) session.getAttribute("nbr_enregistrement")).intValue()/10;

    for (int i=0;i<j;i++)
    {
    %>
    <a href="<%=request.getContextPath()%>/RefRegionsList.do?reqCode=display&pagerPage=<%=i+1%>">
    <%=i+1%>
    </a>
    <% } %>
    j'ai testé mais ça fait une erreur

  13. #13
    Membre éclairé Avatar de zorm
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    584
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 584
    Points : 672
    Points
    672
    Par défaut
    Il me semble plutot que tu dois faire quelque chose du genre request.getSession().getAttribut(...)
    Il faut que tu fasses la mise en session dans ta classe action aussi...

  14. #14
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 65
    Points : 33
    Points
    33
    Par défaut
    dans l'Action
    request.getSession().setAttribute("nbr_enregistrement", new Integer(nbr_enregistrement)) ;

    dans jsp:
    <% int j = ((Integer) request.getSession().getAttribute("nbr_enregistrement")).intValue()/10; %>
    Cela ne fonctionne pas.

    Pour que ça fonctionne :

    l'URL :
    RefRegionsList.do?reqCode=list

    dans
    public ActionForward list()

    je fais un forward :
    return mapping.findForward("display");
    qui va vers public ActionForward display(). Là ça marche pas.

    mais quand l'URL est RefRegionsList.do?reqCode=display. Où là je ne fais pas de forward, ça marche. Pour l'instant je suis obligé d'utiliser le lien direct RefRegionsList.do?reqCode=display

Discussions similaires

  1. boucle dans jsp
    Par choupitta dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 30/09/2010, 09h06
  2. Boucle dans une JSP sur un enuméré JAVA
    Par ptitbob dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 28/02/2008, 08h04
  3. [MySQL] Pagination : faire une boucle dans un tableau ?
    Par benjam89 dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 13/09/2007, 20h10
  4. Notion de boucles dans Business Object
    Par lionelEIGIP dans le forum Deski
    Réponses: 1
    Dernier message: 08/04/2004, 11h26
  5. [Debutant][Struts] Pb de forward dans jsp
    Par muim dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 19/02/2004, 11h02

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