我想检查ArrayList是否为空或不使用JSTL c:if 并且它不起作用。请帮帮我。
我的代码在这里
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%
java.util.ArrayList<Student> studentList = MyClass.getStudentList();
%>
<c:if test="${studentList != null}">
<c:forEach var="student" items="${studentList}">
<c:out value="${student.name}" />
</c:forEach>
</c:if>
我也试过
<%
java.util.ArrayList<Student> studentList = MyClass.getStudentList();
%>
<c:if test="${not empty studentList}">
<c:forEach var="student" items="${studentList}">
<c:out value="${student.name}" /><br/>
</c:forEach>
</c:if>
以及
<%
java.util.ArrayList<Student> studentList = MyClass.getStudentList();
request.setAttribute("studentList", studentList);
%>
<c:if test="${not empty studentList}">
<c:forEach var="student" items="${studentList}">
<c:out value="${student.name}" /><br/>
</c:forEach>
</c:if>
简单 c:表达式 正在运作。
我在这段代码中做错了什么?有线索吗?
答案 0 :(得分:2)
JSP EL不处理JSP的局部变量。它操纵存储在四个范围之一中的对象:
要使此代码有效,您必须执行以下操作:
<%
java.util.ArrayList<Student> studentList = MyClass.getStudentList();
pageContext.setAttribute("studentList", studentList);
%>
但是为了避免在JSP中使用Java代码,引入了JSP EL和JSP标记库。不应使用scriptlet。将servlet用于Java代码,并将其分派给JSP以获取呈现代码。或者使用像Stripes或Spring MVC这样的MVC框架。
答案 1 :(得分:1)
得到了解决方案。这是JAR文件的问题。现在我从Java.Net网站下载了JARS,它正在运行。