ATTENTION : Tutorial en cours d'écriture ! N'hésitez pas à nous signaler toute erreur ou suggestion.
Accès rapide : Syntaxe générale Répétition d'éléments de choix
Un composant <web:ChoiceSelector> permet la saisie d'une valeur parmi une liste de choix. Le composant <ChoiceSelector> permet de définir la liste de choix. Le composant <ChoiceElement> permet de définir un choix donné : ce composant doit, bien entendu, être placé dans la liste. Voici quelques exemples de listes, avec les trois modes supportés.
<web:ChoiceSelector>
<ChoiceSelector>
<ChoiceElement>
<div> Sex : <web:ChoiceSelector id="dpdSex" selectorType="dropdown" autoPost="true"> <web:ChoiceElement text="male" value="0" /> <web:ChoiceElement text="female" value="1" /> </web:ChoiceSelector> <br/> <br/> Sex 2 : <web:ChoiceSelector id="rdoSex2" selectorType="radio_buttons" value="0"> <web:ChoiceElement text="male" value="0" /> <web:ChoiceElement text="female" value="1" /> </web:ChoiceSelector> <br/> <br/> Sex 3 : <web:ChoiceSelector id="lstSex3" selectorType="list" value="1"> <web:ChoiceElement text="male" value="0" /> <web:ChoiceElement text="female" value="1" /> </web:ChoiceSelector> <br/> <br/> </div>
Il est possible de générer dynamiquement une liste de choix, à partir d'un tableau de valeur. Afin de mieux comprendre les choses, regardons les deux extraits de code suivants. Le premier correspond à la classe de page Web : la méthode getCities permettant l'extraction d'un tableau d'objets de description de villes. Le second extrait montre comment répéter les éléments à partir de ces données.
getCities
01 package corelib.services.web.samples.virtualcaddy.webpages.samples; 02 03 import corelib.services.web.webapplications.WebPage; 04 05 public class ChoiceSelectorSamples extends WebPage { 06 07 08 public CityPair [] getCities() { 09 return new CityPair [] { 10 new CityPair( "Lyon", 0 ), 11 new CityPair( "Nice", 1 ), 12 new CityPair( "Paris", 2 ), 13 new CityPair( "Toulouse", 3 ) 14 }; 15 } 16 17 18 19 public class CityPair { 20 private String name; 21 private int code; 22 23 public CityPair( String name, int code ) { 24 this.name = name; 25 this.code = code; 26 } 27 28 public String getName() { 29 return this.name; 30 } 31 32 public int getCode() { 33 return this.code; 34 } 35 } 36 37 }
<div> City : <web:ChoiceSelector id="dpdCity" selectorType="dropdown" autoPost="true"> <web:Repeater values="#{this.cities}" elementAlias="city"> <web:ChoiceElement text="#{city.name}" value="#{city.code}" /> </web:Repeater> </web:ChoiceSelector> <br/> </div>
Notez que pour la liaison aux données, ce sont les propriétés des différents objets qui sont utilisées. Ainsi derrière l'expression de liaison #{this.cities} se cache un appel à la méthode getCities. De même, derrière l'expression #{city.name} se cache un appel à la méthode getName (city étant un alias sur, tour à tour, chaque élément du tableau de villes).
#{this.cities}
#{city.name}
getName
city
Dominique LIARD - © 2007..2010 SARL Infini Software - Tous droits réservés Les autres marques et les noms de produits cités dans ces documents sont la propriété de leurs détenteurs respectifs.