JSP文件无法识别ArrayList?

时间:2012-06-30 23:53:14

标签: java jsp servlets

在我的项目中预览了我的JSP文件:

<%@ page contentType="text/html; charset=utf-8" language="java"%>
<%@ page import="java.util.ArrayList"%>
<%@ page import="beans.UserBean"%>
<jsp:useBean id="userBean" class="beans.UserBean" scope="session" />
<jsp:useBean id="students" type="ArrayList<beans.UserBean>" scope="session" />
<jsp:useBean id="teachers" type="ArrayList<beans.UserBean>" scope="session" />
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>

我在Eclipse中遇到以下错误:

Undefined type: ArrayList

它出了什么问题?即使我正在导入ArrayList,Eclipse也无法识别它,并在以下两行中显示上述消息:

<jsp:useBean id="students" type="ArrayList<beans.UserBean>" scope="session" />
<jsp:useBean id="teachers" type="ArrayList<beans.UserBean>" scope="session" />

For clearer picture :

知道我哪里出错了吗?谢谢

1 个答案:

答案 0 :(得分:4)

type属性应该表示类的完全限定名,而不是通用声明。更重要的是,JSP / EL不会以任何方式识别泛型类型。

改为使用java.util.ArrayList

<jsp:useBean id="students" type="java.util.ArrayList" scope="session" />
<jsp:useBean id="teachers" type="java.util.ArrayList" scope="session" />

所有这些@page import都是不必要的。它们仅在使用 scriptlet 时使用(自JSP 2.0以来已经discouraged的那些oldschool <% %>

顺便说一句,如果这些arraylists已经准备好并且预先由servlet放入范围,并且你只需要在EL中访问它们,那么你需要那些{{1完全没有标签。使用<jsp:useBean>属性而非type属性使用servlet提示您实际 更少或更多。没有那些class标签,它会工作得很好。另请参阅our servlets wiki page