在jsp中使用jstl和el时未找到属性异常
您好,我正在尝试遍历会话中的对象列表。我再次使用jstl遍历会话中的每个对象。 下面是jsp代码在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>
<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>