在jsp中使用jstl和el时未找到属性异常

在jsp中使用jstl和el时未找到属性异常,jsp,jstl,el,Jsp,Jstl,El,您好,我正在尝试遍历会话中的对象列表。我再次使用jstl遍历会话中的每个对象。 下面是jsp代码 <c:forEach items="${sessionScope}" var="item"> <b>${item.key}</b> <table border=1> <c:forEach items="${item.nodes}" var="node"> <tr>

您好,我正在尝试遍历会话中的对象列表。我再次使用jstl遍历会话中的每个对象。 下面是jsp代码

<c:forEach items="${sessionScope}" var="item">
    <b>${item.key}</b>
    <table border=1>
        <c:forEach items="${item.nodes}" var="node">

            <tr>
                <td>${node.link}</td>
                <td>${node.title}</td>
                <td>${node.description}</td>
            </tr>

        </c:forEach>
    </table>

</c:forEach>
以及具有Nde类对象列表的PersonalData类

public class PersonalData {
    private List<Nde> nodes;
    private static int count=0;
    private String s;

    public List<Nde> getNodes()  {
        return nodes;
    }



    public String getS() {
        return s;
    }



    public void setS(String s) {
        this.s = s;
    }



    public void setNodes(List<Nde> nodes) {
        this.nodes = nodes;
    }



    public PersonalData() {
        super();
        count++;
        nodes = new ArrayList<Nde>();

    }

    public static int getCount() {
        return count;
    }
}
为什么找不到nodes属性?

尝试使用

<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>

<c:forEach items="${sessionScope}" var="item">
<c:if test="${fn:startsWith(item.key,'myData')}" >
    <b>${item.key}</b>
    <table border=1>
       <c:forEach items="${item.value.nodes}" var="node">
            <tr>
                <td>${node.link}</td>
                <td>${node.title}</td>
                <td>${node.description}</td>
            </tr>
        </c:forEach>
    </table>
</c:if>
</c:forEach>

${item.key}
${node.link}
${node.title}
${node.description}

您能否演示如何将此
会话范围添加为会话属性及其内容?顺便说一句,我强烈建议更改
sessionScope
的名称,以获得更重要的名称,如
nodesOnSession
或更好的限定名称。Session scope变量用于检索会话变量。我无法更改其名称。那么,您选择的方法是错误的。在代码中导航所有会话属性时,只应查找会话属性.session.setAttribute(“myData”+PersonalData.count,PersonalData);每次用户在我的jsp表单中单击提交按钮时,会话都会存储persondData对象。因此,我的会话变量有许多personalData对象,其中每个personalData对象都有节点列表。因此,我想循环遍历每个personalData对象和该对象内的每个列表。我希望我能够澄清我自己,你应该保存一个
集合
或一个
映射
,保存所有数据,而不是在会话中单独保存每个数据。请记住,会话中可能有更多对象不是
节点
个人数据
实例。
che.jasper.el.JspPropertyNotFoundException: /WEB-INF/views/display.jsp(17,0) '${item.nodes}' Property 'nodes' not found on type javax.servlet.jsp.el.ImplicitObjectELResolver$ScopeMap$ScopeEntry
org.apache.jasper.el.JspValueExpression.getValue(JspValueExpression.java:109)
org.apache.jsp.WEB_002dINF.views.display_jsp._jspx_meth_c_005fforEach_005f1(display_jsp.java:155)
org.apache.jsp.WEB_002dINF.views.display_jsp._jspx_meth_c_005fforEach_005f0(display_jsp.java:122)
org.apache.jsp.WEB_002dINF.views.display_jsp._jspService(display_jsp.java:78)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:238)
org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:262)
org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1180)
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:950)
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852)
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882)
org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:789)
javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>

<c:forEach items="${sessionScope}" var="item">
<c:if test="${fn:startsWith(item.key,'myData')}" >
    <b>${item.key}</b>
    <table border=1>
       <c:forEach items="${item.value.nodes}" var="node">
            <tr>
                <td>${node.link}</td>
                <td>${node.title}</td>
                <td>${node.description}</td>
            </tr>
        </c:forEach>
    </table>
</c:if>
</c:forEach>