Jsp <;c:forEach>;标记无法正确计算arraylist元素

Jsp <;c:forEach>;标记无法正确计算arraylist元素,jsp,servlets,Jsp,Servlets,我无法获取arraylist中的元素,但我可以将student对象作为整个字符串输出。有什么想法吗 我的Servlet页面: ArrayList<Student> students = Dao.getStudentList(); HttpSession session = request.getSession(); session.setAttribute("students", students); ArrayList students=Dao.getStudentList();

我无法获取arraylist中的元素,但我可以将student对象作为整个字符串输出。有什么想法吗

我的Servlet页面:

ArrayList<Student> students = Dao.getStudentList();
HttpSession session = request.getSession();
session.setAttribute("students", students);
ArrayList students=Dao.getStudentList();
HttpSession session=request.getSession();
session.setAttribute(“学生”,学生);
我有一个Dao类来连接mySql数据库,我还有一个在类中全局定义的静态Arraylist来存储student对象

我的JSP页面:

<%
    ArrayList<Student> list = new ArrayList<Student>();
    if (request.getSession().getAttribute("students") != null) {
        list = (ArrayList ) request.getSession().getAttribute("students");
        }
    else {
        System.out.println("List is empty, Please insert new data");
    }

%>


    <table border="1" style="width: 800px">
                <tr>
                    <th>ID</th>
                    <th>Name</th>
                    <th>Age</th>
                    <th>Date of joined</th>
                    <th>Primary Address</th>
                    <th>Secondary Address</th>
                </tr>
            <c:set var="list"  scope="session">
                    <%= list %>
            </c:set> 
            <c:forEach items="${list}" var="lists">
                 <tr>   
                    <td>${lists.id}</td>
                    <td>${lists.name}</td>
                    <td>${lists.age}</td>
                    <td>${lists.doj}</td>
                    <td>${lists.address1}</td>
                    <td>${lists.address2}</td>      
                 </tr>
            </c:forEach>
    </table> 

身份证件
名称
年龄
加入日期
主地址
辅助地址
${lists.id}
${lists.name}
${lists.age}
${lists.doj}
${lists.address1}
${lists.address2}
如果我这样做

<c:forEach items="${list}" var="lists">
             <tr>   
                        <td>${lists}</td>
             </tr>
</c:forEach>

${lists}

它将对象作为字符串输出。但这不是我想要做的。我想以表格格式输出所有学生对象和相应的元素

你有兴趣改变一下吗?他们做你需要的一切,还有更多。 让我们考虑一下我们的标签数据:

<display:table id="data" name="sessionScope.students">
    <display:column property="id" title="ID" sortable="true"/>
    <display:column property="name" title="Name" sortable="true"/>
    <display:column property="age" title="Age" sortable="true"/>
    <display:column property="doj" title="Date of joined" sortable="true"/>
</display:table>


这些标记将为您提供一个表,该表可以具有可排序列、分页和自定义样式等功能。

您可以尝试以下操作:

<c:forEach items="${sessionScope.students}" var="student">
   <tr>   
    <td>${student.id}</td>
    <td>${student.name}</td>
    <td>${student.age}</td>
    <td>${student.doj}</td>
    <td>${student.address1}</td>
    <td>${student.address2}</td>      
   </tr>
</c:forEach>

${student.id}
${student.name}
${student.age}
${student.doj}
${student.address1}
${student.address2}

并确保getter方法名称与变量名称匹配(例如,变量“id”应具有getId()方法)。

停止使用scriptlets并将scriptlets与JSP EL混合使用。将Java代码放在servlet中,而不是JSP中。您的标记毫无意义。sessionScope是jsp中的关键字吗??我试过你提供的代码。它仍然没有打印出任何内容或任何错误。请帮忙,是的。你能试着把${sessionScope.students}放在html的某个地方,看看它打印了什么。这个方法对我来说仍然不起作用。我换了一种我很熟悉的方法。我在jsp中添加了java代码,并用于在html页面上循环打印数据。谢谢