将复杂数据类型从servlet发送到jsp

时间:2013-06-27 18:53:25

标签: java jsp formatting

Last Post

我想把一个来自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:               

4 个答案:

答案 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。