Невозможно отобразить коллекцию компонентов в JSTL - PullRequest
1 голос
/ 14 апреля 2011

У меня есть этот Бин

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;
    }

, а также сервлет, который получает ArrayList, взятый из MySQL.Этот массив использует тот Бин, о котором я упоминал ранее.

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, похоже, не распознает мой бин?

1 Ответ

1 голос
/ 14 апреля 2011
   <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 - это весь список;у него нет идентификатора.Переменная с именем bankData представляет собой отдельные bean-компоненты.

...