无法在JSTL中显示bean的集合

时间:2011-04-14 03:57:29

标签: jsp servlets jstl el javabeans

我有这个Bean

public class Bank {
    private String id;
    private String bankname;

    public void setId(String id){
        this.id = id;
    }

    public void setBankname(String name){
        this.bankname = name;
    }

    public String getId(){
        return id;
    }

    public String getBankname(){
        return bankname;
    }

还有一个接收从MySQL获取的ArrayList的Servlet。 这个arraylist正在使用我之前提到的那个Bean。

response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
int manyRow = 15;
ArrayList<Bank> bankList = new MysqlUtil().getBankTableData(15);

HttpSession sess = request.getSession(true);
try {
    sess.setAttribute("susunan", bankList);
    sess.setAttribute("panjang", bankList.size());
    request.getRequestDispatcher("table/bankTable.jsp").forward(request, response);
    return;
} finally {
     out.close();
}

这是我的JSP通过迭代来访问它们:

<table width="100%" border="0">
    <tr>
        <th>ID</th>
        <th>Name</th>
    </tr>
    <c:forEach items="${susunan}" var="bankData">
        <tr>
            <td><c:out value="${susunan.id}"></c:out></td>
            <td><c:out value="${susunan.bankname}"></c:out></td>
        </tr>
    </c:forEach>
</table>

但我得到的结果是

  

输入字符串的错误:“id”和输入字符串:“bankname”

为什么JSP似乎无法识别我的bean?

1 个答案:

答案 0 :(得分:1)

   <c:forEach items="${susunan}" var="bankData">
    <tr>
        <td><c:out value="${bankData.id}"></c:out></td>
        <td><c:out value="${bankData.bankname}"></c:out></td>
    </tr>
</c:forEach>

名为susanan的变量是整个列表;它没有id。名为bankData的变量是单个bean。