首页 > 解决方案 > JSTL-无法在jsp中显示对象属性值

问题描述

使用的软件:Tomcat 8.0.52、jdk/jre 10.0.1、notepad++(不能使用IDE)
已正确设置所有环境变量并用示例程序检查。
试图显示从 servlet 到 .jsp
我的 servlet 代码的查询结果:

List<User> uu = new ArrayList<User>();    
ResultSet rs;
    rs=stmt.executeQuery("select * from assign where userid!='admin';");
    if(!rs.next())response.sendRedirect("displayerror.jsp");
    else{
        do{
            User p=new User();
            p.setuserid(rs.getString(1));
            p.setpassword(rs.getString(2));
            p.setcontact(rs.getString(3));
            p.setrole(rs.getString(4));
            p.setmentor(rs.getString(5));
            p.setgroup(rs.getString(6));
            uu.add(p);
        }while(rs.next());
    }
    request.setAttribute("results", uu);
    RequestDispatcher rd = request.getRequestDispatcher("display.jsp");
    rd.forward(request, response);

将 List uu 设置为“结果”并将其转发到 display.jsp,我打算在其中显示查询结果。用户类:

class User {
    String userid;
    String password;
    String contact;
    String role;
    String mentor;
    String group;
    // Setters and getters
}

此类的对象被传递给 display.jsp。
我的 display.jsp 代码:

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>     
      <html>
           <head><title>WELCOME</title></head>
           <body>
           <form  >
           <table>
            <c:forEach items="${results}" >
            <tr><td><c:out value="${results.userid}"></c:out></td>
            <td><c:out value="${results.password}"></c:out></td>
            <td><c:out value="${results.role}"></c:out></td>
            <td><c:out value="${results.contact}"></c:out></td>
            <td><c:out value="${results.mentor}"></c:out></td>
            <td><c:out value="${results.group}"></c:out></td></tr>
            </c:forEach>
            </table>
            </form>
           </body>
     </html>

我尝试运行一个基本的 JSTL 程序(显示数字),它运行良好。我也尝试仅显示“结果”大小并显示。代码不起作用的唯一情况是当我尝试访问 ${result.userid} 时它不会抛出任何错误只是一个空白屏幕。
在 web.xml 中:我也尝试使用 3.1 、 2.5 版本(如果有帮助的话)。
已放置 .jar 文件(taglibs-standard-impl-1.2.5.jar 和 taglibs-standard-spec-1.2.5.jar 在类路径中)
如果答案或代码格式有任何错误,请原谅我(我的第一个问题)。

标签: javasqljspservletsjstl

解决方案


尝试使用

<c:forEach var="results" items="${results}">
   <tr>  
       <td><c:out value="${results.userid}"></c:out></td>
       <td><c:out value="${results.password}"></c:out></td>
       <td><c:out value="${results.role}"></c:out></td>
       <td><c:out value="${results.contact}"></c:out></td>
       <td><c:out value="${results.mentor}"></c:out></td>
       <td><c:out value="${results.group}"></c:out></td>
  </tr>
</c:forEach>

推荐阅读