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 :

boucle façon struts


Sujet :

Struts 1 Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 65
    Par défaut boucle façon struts
    Bonjour, j'ai du code en jsp qui marche, mais j'aimerai le stransformer de manière élégant sans jsp, avec des EL , tags et compagnie qui remplaçerai tous mes calculs dans la boucle. Comment je pourrais m'y prendre ?
    <% int j = ((Integer) request.getAttribute("nbr_enregistrement")).intValue()/10;%>

    <%int k = ((Integer) request.getAttribute("serie")).intValue(); %>

    <%int l = ((Integer) request.getAttribute("nbr_enregistrement")).intValue()%10; %>

    <%String pagerPage = (String)request.getAttribute("pagerPage"); %>
    <% int i = 0; %>

    <% int m = 5; %>
    <l:notEqual name="RefMenusForm" property="serie" value="0" >

    <a href="<%=request.getContextPath()%>/RefMenusList.do?reqCode=display&pagerPage=<%=i+1%>&serie=<%=k-1%>">
    &lt;&lt;
    </a>&nbsp;
    </l:notEqual>
    <%--number page in one serie in pagination --%>
    <% if ( j+1 >= 5+( 5*k) )
    m = 5;
    else{
    if(l==0){
    m = j-(5*k);
    }
    else
    m = j+1-(5*k);
    }
    %>

    <% for ( i=(0+(5*k));i<(m+(5*k));i++)
    {
    %>
    <%if(i+1==Integer.parseInt(pagerPage))
    {
    %>
    &nbsp;<b><%=i+1%></b>
    <%}else{ %>
    &nbsp;<a href="<%=request.getContextPath()%>/RefMenusList.do?reqCode=display&pagerPage=<%=i+1%>&serie=<%=k %>">
    <%=i+1%>
    </a>
    <%} %>
    <% } %>
    <% if( m == 5){ %>
    &nbsp;<a href="<%=request.getContextPath()%>/RefMenusList.do?reqCode=display&pagerPage=<%=i+1%>&serie=<%=k+1 %>">
    &gt;&gt;
    </a>

    <% } %>

  2. #2
    Membre chevronné Avatar de djsnipe
    Inscrit en
    Mai 2008
    Messages
    440
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 440
    Par défaut
    Première solution : faire un gros couper coller vers un tag qui soit suffisamment paramétrable pour gérer toutes les parties variables dans le code que tu as indiqué : comment trouver les 3 variables et l'URL à appeler pour paginer.

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

    Informations forums :
    Inscription : Juillet 2008
    Messages : 65
    Par défaut
    mais j'ai pas trouvé de tag avec 3 parties variables

  4. #4
    Membre chevronné Avatar de djsnipe
    Inscrit en
    Mai 2008
    Messages
    440
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 440
    Par défaut
    Un tag peut avoir autant de paramètres d'appels que nécessaire, tu peux imaginer qq chose du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <xx:pagination 
       scope="request" 
       var1="nbr_enregistrement"
       var2="serie"
       var3="..."
       action="RefMenusList.do" />

  5. #5
    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
    Sinon, tu dois pouvoir t'en sortir avec la JSTL et les EL mais j'avoue que ça ne va pas être simple à mettre en oeuvre.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 65
    Par défaut
    comment faire les boucles, le if et le else ?
    j'ai trouvé un exemple, j'ai pas trouvé de else
    <c:forEach items="${requestScope['books-list']}" var="book" varStatus="status">
    <li class="${status.index%2==0?'pair':'impair'}">${book.name} (${book.price} &euro
    <c:if test="${book.price < 30.0}">
    <img src='hot.png' alt='Moins de 30 &euro;'/>
    </c:if>
    </li>
    </c:forEach>

  7. #7
    Membre chevronné Avatar de djsnipe
    Inscrit en
    Mai 2008
    Messages
    440
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 440
    Par défaut
    Citation Envoyé par c_nvy Voir le message
    Sinon, tu dois pouvoir t'en sortir avec la JSTL et les EL mais j'avoue que ça ne va pas être simple à mettre en oeuvre.
    Les taglib ont été prévues justement pour éviter de mettre en oeuvre dans des JSP directement ce genre de bouts de code. Car au final, il faudra mettre ce code dans une JSP commune, qui sera incluse avec des paramètres pour les parties variables. Donc pourquoi passer par une syntaxe JSTL lorsque l'on peut écrire du pur Java, et que l'intégration aux autres JSP sera plus simple ?

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

Discussions similaires

  1. [Struts-Layout] passage de parametre dans une boucle
    Par mama123 dans le forum Struts 1
    Réponses: 2
    Dernier message: 11/06/2009, 15h07
  2. Réponses: 18
    Dernier message: 12/05/2009, 14h44
  3. boucle Struts sur une action !
    Par habasque dans le forum Struts 1
    Réponses: 6
    Dernier message: 09/02/2009, 12h00
  4. [struts]valeur de l'index de boucle
    Par GreenJay dans le forum Struts 1
    Réponses: 6
    Dernier message: 08/11/2005, 12h20
  5. Réponses: 1
    Dernier message: 28/06/2005, 10h28

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