将数据从servlet发送到jsp

时间:2013-06-27 18:18:14

标签: java jsp servlets

我尝试将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类型   mismatch:无法从Object转换为QueryResultList .....   引起:

     

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

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

5 个答案:

答案 0 :(得分:2)

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

示例:

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

2)将Java代码直接嵌入JSP

中是 NOT 良好做法

SO Wiki

上阅读更多内容

答案 1 :(得分:1)

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

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

答案 2 :(得分:0)

您是否在jsp中导入了QueryResultList

答案 3 :(得分:0)

你忘了&lt; %%&gt;对于HTML代码

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

   for (Entity entity : results) {           

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

   }

%>

答案 4 :(得分:0)

您需要将从request.getAttribute("postList")获得的列表投射到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>

    }
%>

有关expression

的更多信息