I have this piece of JSP with 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
is a ServletContext
attribute that contains an instance of the class Werkplaats
. Werkplaats
contains an ArrayList<Klant> alleKlanten
which holds several Klant
objects. Klant
has the attribute voornaam
and the method getVoornaam()
but when I view the JSP it hte dropdown isn't filled, it just had the Nieuwe Klant
and an empty <option></option>
what I expected and want is a dropdown with <option>'Klant voornaam'</option>
for each 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();
}
}
the Listener where thet ArrayList is filled:
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);
}
}
}
Forgot to add the JSTL lib
in the JSP:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
and put the actual jars in the war/WEB-INF/lib
folder
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.