1

我在使用 JSTL 显示 bean 的详细信息时遇到问题。我的servlet代码如下

 protected void processRequest(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    response.setContentType("text/html;charset=UTF-8");
    PrintWriter out = response.getWriter();

    String username =request.getParameter("username");
    String password = request.getParameter("password");
    try {

        con = connection.connectionfile();

        pstmt=con.prepareStatement("select * from Login where Username=? and Password=?");
        pstmt.setString(1,username);
        pstmt.setString(2, password);
        rs = pstmt.executeQuery();

        if(rs.next())
        {
            ListGrabber grabber = new ListGrabber();
            List<DvdDetail> list = new ArrayList<DvdDetail>();
            list=grabber.getBeanList();

            request.setAttribute("listbean",list);
            RequestDispatcher view = request.getRequestDispatcher("listdetail.jsp");

            view.forward(request, response);


        }
        else
        {
            response.sendRedirect("loginerror.html");
        }

    } 
     catch(Exception ex)
     {
        ex.printStackTrace();
     }

    finally {            
        out.close();
        try
        {
            rs.close();
            con.close();
        }
        catch(Exception ex)
        {
            ex.printStackTrace();
        }
    }
}

豆子如下:

   public class DvdDetail {

private int id;
private String film_name;
private String released_date;
private String directed_by;
private String actor_name;
private String actress_name;
private int price;
private String banner;

public DvdDetail(int id,String film_name,String released_date,String directed_by,String actor_name,String actress_name,int price,String banner)
{

    this.id=id;
    this.film_name=film_name;
    this.released_date=released_date;
    this.directed_by=directed_by;
    this.actor_name=actor_name;
    this.actress_name=actress_name;
    this.price=price;
    this.banner=banner;

}

public String getActor_name() {
    return actor_name;
}

public void setActor_name(String actor_name) {
    this.actor_name = actor_name;
}

public String getActress_name() {
    return actress_name;
}

public void setActress_name(String actress_name) {
    this.actress_name = actress_name;
}

public String getBanner() {
    return banner;
}

public void setBanner(String banner) {
    this.banner = banner;
}

public String getDirected_by() {
    return directed_by;
}

public void setDirected_by(String directed_by) {
    this.directed_by = directed_by;
}

public String getFilm_name() {
    return film_name;
}

public void setFilm_name(String film_name) {
    this.film_name = film_name;
}

public int getId() {
    return id;
}

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

public int getPrice() {
    return price;
}

public void setPrice(int price) {
    this.price = price;
}

public String getReleased_date() {
    return released_date;
}

public void setReleased_date(String released_date) {
    this.released_date = released_date;
}



}

如何在 JSP 页面中打印出多个电影名称但仅使用 JSTL。在 JSP 中,我通常将其解决为

List<DvdDetail> list = request.getParameter("listbean");
for(int i=0;i<list.size();i++)
{
  DvdDetail bean = list.get(i);
  ///displaying usng out.print(bean.getProperty());
}

我需要实现相同的目标,但使用 JSTL。

4

3 回答 3

2

单击您在问题上添加的 JSTL 标记的弹出窗口中的信息链接,以获取有关 JSTL 的信息和指向教程的链接。

您想要实现的目标可以这样完成:

<ul>
    <c:forEach var="dvd" items="${listbean}">
        <li><c:out value="${dvd.film_name}"/></li>
    </c:forEach>
</ul>
于 2012-11-17T17:12:06.457 回答
1

你可以使用:

<c:forEach var="dvdDetail" items="${listbean}">
      ${dvdDetail.film_name}
      ${dvdDetail.actor_name}
     ...

</c:forEach>
于 2012-11-17T17:08:53.563 回答
0

如果您是 JSTL 新手,您应该检查一下。上面有一些链接。希望它有所帮助。

于 2012-11-17T17:24:00.273 回答