エンティティのリストを.jspファイルに表示しようとしていますが、次のエラーが発生します。
Unable to compile class for JSP:
An error occurred at line: 28 in the jsp file: /guestbook.jsp
Can only iterate over an array or an instance of java.lang.Iterable
25: </tr>
26: <tr>
27: <%
28: for (Entity drugtarget : "${drugtargets}") {
29: %>
30: <td>
31: <%
サーブレットクラスからのクエリは次のとおりです。
DatastoreService datastore = DatastoreServiceFactory.getDatastoreService();
Query query = new Query("DrugTarget").addSort("drug", Query.SortDirection.DESCENDING);
List<Entity> drugtargets = datastore.prepare(query).asList(FetchOptions.Builder.withLimit(10));
req.setAttribute("drugtargets", drugtargets);
そして、これは私がドラッグターゲットをjspファイルに送信する方法です:
String url = "/guestbook.jsp";
ServletContext sc = getServletContext();
RequestDispatcher rd = sc.getRequestDispatcher(url);
try {
rd.forward(req, resp);
} catch (ServletException e) {
e.printStackTrace();
}
最後に、jspパートの書き方を示します。
<table border="1">
<tr>
<th>Drug Names</th>
<th>Target Names</th>
</tr>
<tr>
<%
for (Entity drugtarget : "${drugtargets}") {
%>
<td>
<%
pageContext.setAttribute("drug_content",
drugtarget.getProperty("drug"));
%>
${fn:escapeXml(drug_content)}
</td>
<td>
<%
pageContext.setAttribute("target_content",
drugtarget.getProperty("target"));
%>
${fn:escapeXml(target_content)}
</td>
<%
}
%>
</tr>
</table>
構文を間違えていると思いますが、よくわかりません。いくつかの例を確認し、同じ方法(サーブレットからjspにエンティティのリストを送信し、jspファイル内のエンティティに到達するため)を使用しました。このエラーを解決するにはどうすればよいですか?