我想把一个来自servlet的QueryResultList发送到一个jsp页面。我写了这段代码
QueryResultList<Entity> results = pq.asQueryResultList(fetchOptions);
System.out.println("-------------------");
for (Entity entity : results) {
System.out.println(entity.getProperty ("content"));
System.out.println(entity.getProperty ("time"));
}
req.setAttribute("postList",results);
req.getRequestDispatcher("/tublr.jsp").forward(req, resp);
和jsp
<%@page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="java.util.List,com.google.appengine.api.datastore.Query.SortDirection,com.google.appengine.api.datastore.*" %>
<%
QueryResultList<Entity> result = request.getAttribute("postList");
for (Entity entity : results) {
%>
<b> IT WORRRKKKK !!! </b> <br>
<%
}
%>
但是我收到错误jsp文件中的第37行出现错误:
/tublr.jsp类型不匹配:无法从Object转换为 QueryResultList 34:....引起:
org.apache.jasper.JasperException:无法为JSP编译类:
我正在为学校这样做,所以我必须这样做(在jsp页面中使用java代码)
编辑:我仍然有这个错误,我不明白,它在Servlet中工作正常......
An error occurred at line: 40 in the jsp file: /tublr.jsp
results cannot be resolved
37: QueryResultList<Entity> result = (QueryResultList<Entity>)request.getAttribute("postList");
38:
39:
40: for (Entity entity : results) {
41:
42: %> <b> IT WORRRKKKK !!! </b> <br> <%
43:
答案 0 :(得分:0)
将request.getAttribute("postList");
投放到QueryResultList<Entity>
更改
<%
QueryResultList<Entity> result = request.getAttribute("postList");
到
<%
QueryResultList<Entity> result = (QueryResultList<Entity>)request.getAttribute("postList");
如果请求属性是QueryResultList<Entity>
。另外,您应该查看基本的java。你似乎并不理解你得到的例外。
答案 1 :(得分:0)
QueryResultList<Entity> result = (QueryResultList<Entity>) request.getAttribute("postList");
答案 2 :(得分:0)
更改此
QueryResultList<Entity> result = request.getAttribute("postList");
来看看:
QueryResultList<Entity> result = (QueryResultList<Entity>)request.getAttribute("postList");
确保您要返回的postList是Entity
类型的列表答案 3 :(得分:-1)
尽量不要在JSP中使用scriptlet,因为其他人很难维护。相反,您可以在JSP中使用JSTL。