0
我有這個片JSP與EL:迭代通過的ArrayList用JSP EL
<div>
<label class="label">Klant</label>
<select name="klant" id="klant">
<option value="nieuweKlant">Nieuwe Klant</option>
<c:forEach items="${werkplaats.alleKlanten}" var="current">
<option>
<c:out value="${current.voornaam}" />
</option>
</c:forEach>
</select>
</div>
werkplaats
是ServletContext
屬性包含類Werkplaats
的一個實例。 Werkplaats
包含一個ArrayList<Klant> alleKlanten
,其中包含幾個Klant
對象。 Klant
具有屬性voornaam
和方法getVoornaam()
但是當我查看JSP它興田下拉未填寫,它只是有Nieuwe Klant
和空3210我所期待的,並希望與<option>'Klant voornaam'</option>
每個Klant
下拉。
Werkplaats:
public class Werkplaats implements Serializable {
private ArrayList<Klant> alleKlanten = new ArrayList<Klant>();
public Klant zoekKlant(String voornaam, String tussenvoegsel, String achternaam) {
Klant klant = null;
for (Klant k : alleKlanten) {
if (k.getAchternaam().equals(achternaam) && k.getVoornaam().equals(voornaam) && k.getTussenvoegsel().equals(tussenvoegsel)) {
klant = k;
}
}
return klant;
}
public boolean verwijderKlant(String voornaam, String ussenvoegsel, String achternaam) {
boolean verwijdert = false;
if (zoekKlant(voornaam, ussenvoegsel, achternaam) != null) {
alleKlanten.remove(zoekKlant(voornaam, ussenvoegsel, achternaam));
verwijdert = true;
}
return verwijdert;
}
public boolean voegKlantToe(Klant klant) {
boolean toegevoegd = false;
if (zoekKlant(klant.getVoornaam(), klant.getTussenvoegsel(), klant.getAchternaam()) == null) {
alleKlanten.add(klant);
toegevoegd = true;
}
return toegevoegd;
}
public ArrayList<Klant> getAlleKlanten() {
return alleKlanten;
}
}
Klant:
public class Klant implements Serializable, Persoon {
private String voornaam, tussenvoegsel, achternaam;
public Klant(String voornaam, String tussenvoegsel, String achternaam) {
setVoornaam(voornaam);
setTussenvoegsel(tussenvoegsel);
setAchternaam(achternaam);
}
public String getVoornaam() {
return voornaam;
}
public void setVoornaam(String naam) {
this.voornaam = naam;
}
public String getTussenvoegsel() {
return tussenvoegsel;
}
public void setTussenvoegsel(String tussenvoegsel) {
this.tussenvoegsel = tussenvoegsel;
}
public String getAchternaam() {
return achternaam;
}
public void setAchternaam(String achternaam) {
this.achternaam = achternaam;
}
public String getVolledigeNaam() {
return getVoornaam() + " " + getTussenvoegsel() + " " + getAchternaam();
}
}
其中泰德ArrayList的填充監聽器:
public class MyServletContextListener implements ServletContextListener {
public void contextInitialized(ServletContextEvent arg0) {
Werkplaats werkplaats = new Werkplaats();
// Dummy Data
Auto auto1 = new Auto("Peugeot", "506", "NH-56-KJ", 2001);
Auto auto2 = new Auto("BMW", "M5", "GHJ-23-K", 2013);
Auto auto3 = new Auto("Mazda", "626", "ODX-1-00", 1999);
Auto auto4 = new Auto("Nissan", "GTR", "81-PVJ-1", 2012);
Auto auto5 = new Auto("Suzuki", "Swift", "1-KBB-00", 2011);
Adres adres1 = new Adres("Houtstraat", 1, "", "1521GH", "Utrecht");
Adres adres2 = new Adres("Pinkstraat", 15, "", "1541HC", "Koog aan de Zaan");
Adres adres3 = new Adres("Verschuurstraat", 21, "", "7891OP", "Hilversum");
Adres adres4 = new Adres("Bakkerstraat", 67, "", "4652AL", "Hilversum");
Adres adres5 = new Adres("Houtstraat", 1, "a", "1658FG", "Utrecht");
Calendar gd1 = Calendar.getInstance();
Calendar gd2 = Calendar.getInstance();
Calendar gd3 = Calendar.getInstance();
Calendar gd4 = Calendar.getInstance();
Calendar gd5 = Calendar.getInstance();
gd1.set(1973, 1, 1);
gd2.set(1994, 9, 3);
gd3.set(1993, 9, 21);
gd4.set(1993, 1, 15);
gd5.set(1973, 1, 1);
Klant klant1 = new Klant("Henk", "", "Sjaak", gd1, adres1);
Klant klant2 = new Klant("Liam", "de", "Haas", gd2, adres2);
Klant klant3 = new Klant("Nathan", "van", "Nispen", gd3, adres3);
Klant klant4 = new Klant("Frits", "", "Budding", gd4, adres4);
Klant klant5 = new Klant("Jasper", "is de", "Sjaak", gd5, adres5);
klant1.voegAutoToe(auto1);
klant2.voegAutoToe(auto2);
klant3.voegAutoToe(auto3);
klant4.voegAutoToe(auto4);
klant5.voegAutoToe(auto5);
werkplaats.voegKlantToe(klant1);
werkplaats.voegKlantToe(klant2);
werkplaats.voegKlantToe(klant3);
werkplaats.voegKlantToe(klant4);
werkplaats.voegKlantToe(klant5);
ServletContext sc = arg0.getServletContext();
synchronized (sc) {
sc.setAttribute("werkplaats", werkplaats);
}
}
}
alleKlanten包含些什麼呢? –
是的,它在「ServletContextListener」中填充時 –
@MarcoAcierno添加了監聽器 –