Afficher une liste de beans avec Struts 2
Eric Vialle | Samedi 28 novembre 2009 | 1:09
Nous allons voir ici comment afficher une liste (java.util.List) ou tout autre objet implémentant l’interface java.util.Iterator avec le framework Struts 2.1. Notre liste sera une liste de bean respectant la norme JavaBean. Pour cet exemple, nous allons définir dans un premier temps notre bean ItemBean. Puis dans une Action Struts, nous créérons une liste de ItemBean, que nous afficherons dans une page HTML via une JSP.
Dans un premier temps, nous définissons notre ItemBean avec deux champs: nom et prix.
- package org.vialle.fivefreshminutesit.iterator;
- /**
- * Java Bean representant un élément avec deux champs: le nom et le prix.
- *
- * @author Eric Vialle
- */
- public class ItemBean {
- private String nom;
- private double prix;
- /**
- * @param nom
- * the nom to set
- */
- this.nom = nom;
- }
- /**
- * @return the nom
- */
- return nom;
- }
- /**
- * @param prix
- * the prix to set
- */
- public void setPrix(double prix) {
- this.prix = prix;
- }
- /**
- * @return the prix
- */
- public double getPrix() {
- return prix;
- }
- }
Puis nous définissons notre action, nous tacherons d’afficher le contenu de itemsList:
- package org.vialle.fivefreshminutesit.iterator;
- import java.util.ArrayList;
- import java.util.List;
- import com.opensymphony.xwork2.ActionSupport;
- /**
- * @author Eric VIALLE
- */
- public class LoopAction extends ActionSupport {
- /** Liste que nous souhaitons afficher dans la JSP. */
- private List itemsList;
- /**
- * @return the itemsList
- */
- return itemsList;
- }
- /**
- * @param itemsList
- * the itemsList to set
- */
- this.itemsList = itemsList;
- }
- /** Point d'entrée standard de notre action Struts. */
- // Ajout du premier élément
- ItemBean item1 = new ItemBean();
- item1.setNom("Ordinateur");
- item1.setPrix(799.99);
- itemsList.add(item1);
- // Ajout du second élément
- ItemBean item2 = new ItemBean();
- item2.setNom("Voiture");
- item2.setPrix(11990);
- itemsList.add(item2);
- // Ajout du troisieme élément
- ItemBean item3 = new ItemBean();
- item3.setNom("Avion");
- item3.setPrix(310000000);
- itemsList.add(item3);
- return SUCCESS;
- }
- }
Puis nous développons notre JSP: /itemsDisplay.jsp
- <%@ taglib prefix="s" uri="/struts-tags" %>
- <html>
- <body>
- <%-- avec %{itemsList.size} <=> getItemsList().getSize() --%>
- Taille de la liste:<s:property value="%{itemsList.size}"/><br/>
- <%-- On déroule la liste itemsList --%>
- <s:iterator value="itemsList">
- <%-- <s:property value="nom"/> <=> itemBean.getNom() --%>
- <s:property value="nom"/> - <s:property value="prix"/> Euros<br/>
- </s:iterator>
- </body>
- </html>
Enfin, nous configurons ainsi, notre action dans le fichier struts-config.xml, comme n’importe quelle action:
- <package name="exampleIterator" namespace="/exampleiterator" extends="struts-default">
- <action name="loop" class="org.vialle.fivefreshminutesit.iterator.LoopAction">
- <result name="success">/itemsDisplay.jsp</result>
- </action>
- </package>
Nous aurons la joie de voir cette page, lors de l’appel via notre navigateur à la page http://localhost:8080/MonApplicationTest/exampleiterator/loop:
- <html>
- <body>
- Taille de la liste:3<br/>
- Ordinateur - 799.99 Euros<br/>
- Voiture - 11990.0 Euros<br/>
- Avion - 3.1E8 Euros<br/>
- </body>
- </html>





