session.getAttribute()引用"在值中使用时必须进行转义

时间:2011-12-12 10:39:29

标签: java jsp session servlets

我正在为会话设置一个属性:

HttpSession session = request.getSession();
System.out.println(al);
session.setAttribute("arraylist",al);

al是Employee对象的列表。我也可以看到System.out正在控制台中打印。 但是当我试图从jsp获取列表时:

<%
List<Employee> employees = (List<Employee>)session.getAttribute( "arraylist" );

for(int i=0;i<employees.size();i++){
  Employee emp = employees.get(i);
  out.println(emp.getFirstName());
  out.println(emp.getLastName());
  out.println(emp.getAddress());
  out.println(emp.getContact());
  out.println(emp.getEmail());
}   
%>

我收到错误:

Attribute value  (ArrayList<Employee>)session.getAttribute("arraylist") is quoted with " which must be escaped when used within the value

我正在使用Tomcat 6.0.33。任何信息都会非常有用。

感谢。

2 个答案:

答案 0 :(得分:5)

也许

-Dorg.apache.jasper.compiler.Parser.STRICT_QUOTE_ESCAPING=false

帮助。检查更严格的引用规则。

答案 1 :(得分:3)

使用JSTL forEach迭代集合。

<c:forEach var="emp" items="${arraylist}">
   <c:out value="{emp.firstName}"/>
</c:forEach>