0

サーブレットから JSP ページにリストを送信しようとしました。これはサーブレット コードです。

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

import1) JSP の先頭にステートメントを追加する必要があります。

例:

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

2) Java コードを JSP に直接埋め込むことはお勧めできません。

SO Wikiで詳細を読む

于 2013-06-27T18:19:23.650 に答える
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>
于 2013-06-27T18:24:24.170 に答える
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>

    }
%>

表現についての詳細

于 2013-06-28T07:28:14.403 に答える