【问题标题】:Send data from servlet to jsp将数据从 servlet 发送到 jsp
【发布时间】:2013-06-27 18:18:13
【问题描述】:

我试图将一个列表从我的 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。

【问题讨论】:

  • 正如其他人所说,不要在 JSP 中嵌入 Java 代码。改用 JSTL。
  • 正如我在你上一篇文章中提到的......JSTL foreach......

标签: java jsp servlets


【解决方案1】:

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

例子:

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

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

SO Wiki上阅读更多内容

【讨论】:

    【解决方案2】:

    不要在 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>
    

    【讨论】:

    • 我觉得这对我来说很高级,我是为学校做的
    【解决方案3】:

    您忘记了 的 html 代码

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

    【讨论】:

      【解决方案4】:

      你有没有在你的jsp中导入QueryResultList

      【讨论】:

      • 这应该是评论..不是答案
      【解决方案5】:

      您需要将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

      【讨论】:

        猜你喜欢
        • 2013-08-13
        • 2013-05-27
        • 2014-07-21
        • 1970-01-01
        • 2019-01-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多