我有这个带有EL的JSP:
<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
和空{ {1}}我期望和想要的是<option></option>
每个<option>'Klant voornaam'</option>
的下拉列表。
Werkplaats:
Klant
}
Klant:
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;
}
}
填充thel ArrayList的监听器:
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();
}
}
答案 0 :(得分:0)
忘记添加JSTL库
JSP中的:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
并将实际的jar放在war/WEB-INF/lib
文件夹