在写JavaWeb项目过程中,从servlet转发了一个ArrayList集合到jsp界面中显示,但转发到jsp界面中后,用EL表达式获取,但提示 “无法解析变量”
servlet界面
jsp界面
在写JavaWeb项目过程中,从servlet转发了一个ArrayList集合到jsp界面中显示,但转发到jsp界面中后,用EL表达式获取,但提示 “无法解析变量”
servlet界面
引自免费微信小程序:皆我百晓生
根据您提供的信息,看起来在JSP页面中的EL表达式${key_list}
未被正确解析,导致了“无法解析变量”的错误。这通常是因为在请求转发时没有正确地设置属性名,或者在JSP页面中引用了错误的属性名。
首先,检查一下S servlet中设置属性的部分,这里有一个拼写错误。在设置request attribute时,字符串s:
不应该出现在变量名前。修改S servlet中的这一行代码:
request.setAttribute("key_List", goodsList);
然后,在JSP页面中,同样修正key_list
变量的引用。去掉前面多余的字符s:
,正确的引用应该是${key_List}
。以下是修复后的JSP代码片段:
<table>
<thead>
<tr>
<th>库存</th>
<th>描述</th>
<th>操作</th>
</tr>
</thead>
<tbody>
<c:forEach items="${key_List}" var="goods" varStatus="idx">
<tr>
<td>${idx.count}</td>
<td>${goods.name}</td>
<td>${goods.price}</td>
<td>${goods.inventory}</td>
<td>${goods.description}</td>
<td><a href="#">删除</a></td>
<td><a href="modifygoods">修改</a></td>
</tr>
</c:forEach>
</tbody>
</table>
保存并重新运行您的应用,这应该能解决“无法解析变量”的问题。确保已经正确导入了JSTL标签库,并且在JSP文件头部添加了相应的指令,例如:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
这样就可以在JSP页面中使用 <c:forEach>
标签了。