2013-06-27 5 views
0

Last PostОтправить сложный тип данных из сервлета JSP

Я Тринг отправить 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); 

и СПЯ

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

Но я получаю сообщение об ошибке Произошла ошибка в строке: 37 в файле Jsp:

/tublr.jsp Тип рассогласования : не может конвертировать из объекта в QueryResultList 34: .... вызвано:

org.apache.jasper.JasperException: не удается выполнить скомпилировать класс для JSP:

я делаю это для школы, так что я должен сделать это таким образом (с использованием Java-код на странице JSP)

EDIT: Я до сих пор эта ошибка , я не понимаю, это работает отлично в 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

в ролях request.getAttribute("postList"); к QueryResultList<Entity>

Изменить

<% 
    QueryResultList<Entity> result = request.getAttribute("postList"); 

в

<% 
    QueryResultList<Entity> result = (QueryResultList<Entity>)request.getAttribute("postList"); 

если атрибут запроса является QueryResultList<Entity>. Кроме того, вы должны просмотреть базовую java. Кажется, вы не понимаете, какое у вас было исключение.

+0

Я понимаю, но я думал, что это request.getAttribute уже список QueryResult . У меня все еще есть ошибка в строке для (Entity entity: results) { – user2528061

+0

@ user2528061 Фактический объект этого типа. Но метод имеет возвращаемый тип 'Object', поэтому вам нужно отдать его на свой тип или компилятор будет жаловаться. Добавьте свою новую ошибку в качестве редактирования в свой вопрос. –

+1

@ user2528061 'results' не существует в том, что вы показали. Вы имели в виду «результат»? Использует ли 'QueryResultList'' Iterable'? –

0
QueryResultList<Entity> result = (QueryResultList<Entity>) request.getAttribute("postList"); 
-1

Старайтесь не использовать скрипты внутри JSP, потому что другим людям очень сложно поддерживать. Вместо этого вы можете использовать JSTL в JSP.

0

Изменить этот

QueryResultList<Entity> result = request.getAttribute("postList"); 

этого и увидеть:

QueryResultList<Entity> result = (QueryResultList<Entity>)request.getAttribute("postList"); 

Убедитесь, что postList вы возвращаете список типа Entity