0

我试图将一个列表从我的 servlet 发送到一个 jsp 页面。这是servlet代码:

Query q = new Query("post").addSort("time", SortDirection.DESCENDING);
PreparedQuery pq = datastore.prepare(q);

QueryResultList<Entity> results = pq.asQueryResultList(fetchOptions);
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代码:

<%
    QueryResultList<Entity> result = request.getAttribute("postList");
    for (Entity entity : results) {           
        <b> IT WORRRKKKK !!! </b> <br>
    }
%>

但我得到一个错误

编辑:我添加了

<%@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.*" %>

现在我得到一个新错误

在 jsp 文件中的第 37 行发生错误:/tublr.jsp 类型不匹配:无法从 Object 转换为 QueryResultList ..... 原因:

org.apache.jasper.JasperException:无法为 JSP 编译类:

我是为学校做的,我们现在必须像这样,我们必须在 jsp 页面中使用 java。

4

5 回答 5

2

1) 您需要import在 JSP 顶部添加语句。

例子:

<%@ page import="java.util.List" %>

2)将 Java 代码直接嵌入到 JSP 中并不是一个好习惯

在SO Wiki上阅读更多信息

于 2013-06-27T18:19:23.650 回答
1

不要在 JSP 页面上进行任何编码。这种东西有一个JSTLforEach库,要迭代和显示你应该使用标签的东西:

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="x" uri="http://java.sun.com/jsp/jstl/xml" %>

和 for 循环

<x:forEach select="${postList}" var="item">
    ... code
</x:forEach>
于 2013-06-27T18:24:24.170 回答
0

您需要转换从request.getAttribute("postList")to获得的列表QueryResultList

<%
    QueryResultList<Entity> result =(QueryResultList)request.getAttribute("postList");
    for (Entity entity : result) {           
       // Your code goes here  You can use <%= %> to print values. 
       // <b> IT WORRRKKKK !!! </b> <br>

    }
%>

有关表达的更多信息

于 2013-06-28T07:28:14.403 回答
0

QueryResultList在你的jsp中导入了吗?

于 2013-06-27T18:21:58.127 回答
0

您忘记了 html 代码的 <% %>

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

   for (Entity entity : results) {           

          %> <b> IT WORRRKKKK !!! </b> <br><%

   }

%>
于 2013-06-27T18:23:13.860 回答