2012-06-30 20 views
2

鉴于我的JSP文件的预览之后在我的项目:JSP文件不能识别ArrayList?

<%@ 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 :

任何想法是我有什么错?由于

+0

我不确定'page import'指令在'jsp:useBean'中是否受到尊重,只能在scriptlets中使用。 FQ类名是否工作? – millimoose

回答

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是不必要的。使用小脚本(那些老校友<% %>事情,因为JSP 2.0这已经discouraged)时才会使用。

顺便说一句,如果编写的,由servlet放在事前范围的的ArrayList和所有你需要的是刚刚接触他们EL,那么你做需要那些<jsp:useBean>标签都没有。使用type属性而不是class属性暗示使用servlet的实际上实际上是的更少或更多。如果没有这些<jsp:useBean>标签,它会工作的很好。另见our servlets wiki page

+0

工作出色,非常感谢! – ron

+0

不客气。 – BalusC