使用JSP EL迭代ArrayList

时间:2014-07-01 16:06:39

标签: java jsp arraylist el

我有这个带有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>

werkplaatsServletContext属性,包含类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();
}

}

1 个答案:

答案 0 :(得分:0)

忘记添加JSTL库

JSP中的

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>

并将实际的jar放在war/WEB-INF/lib文件夹