RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / 问题 / 769219
Accepted
Pavel Zlotarenchuk
Pavel Zlotarenchuk
Asked:2020-01-11 15:49:49 +0000 UTC2020-01-11 15:49:49 +0000 UTC 2020-01-11 15:49:49 +0000 UTC

如何将数据从 servlet 输出到 JSP 页面

  • 772

下午好,我正在为一名课程工作者用 Java 制作一个 Web 应用程序。出现技术问题。我无法将带有对象的 ArrayList 中的数据输出到将在浏览器页面上的表中。有数据的类代码:

package tanat.servlet;

import java.io.IOException;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.List;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import tanat.beans.IceFloe;
import tanat.database.DBUtils;
import tanat.database.MySQLConnUtils;



@WebServlet(urlPatterns = { "/icefloelist" })
public class IceFloeList extends HttpServlet {

    private static final long serialVersionUID = 1L;

    public IceFloeList() {
        super();
    }

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

   //     Connection conn = MyUtils.getStoredConnection(request);
    Connection conn = null;
        String errorString = null;
        List<IceFloe> listfloe = null;

        conn = MySQLConnUtils.getDBConnection();

        try {
            listfloe = DBUtils.queryIceFloe(conn);
        } catch (SQLException e) {
            e.printStackTrace();
            errorString = e.getMessage();
        } 
        // Сохранить информацию в request attribute перед тем как forward к views.
        request.setAttribute("errorString", errorString);
        request.setAttribute("listfloe", listfloe);

        // проверял, в консоль данные идут
        for (int i=0; i< listfloe.size(); i++) {
            System.out.println(listfloe.get(i).getId());
            System.out.println(listfloe.get(i).getNameIceFloe());
            System.out.println(listfloe.get(i).getNumberOfFishermen());
            System.out.println("\n");
        }

        // Forward к /views/productListView.jsp
        RequestDispatcher dispatcher = request.getRequestDispatcher("/views/iceFloeListView.jsp");
        // и так пробывал
//      RequestDispatcher dispatcher = getServletContext().getRequestDispatcher("/views/iceFloeListView.jsp");
        dispatcher.forward(request, response);
    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        doGet(request, response);
    }
}

jsp页面代码

<%@ page language="java" contentType="text/html; charset=UTF-8"
 pageEncoding="UTF-8"%>

<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>SalvageService</title>
    <link rel="stylesheet" href="css/style.css">
</head>
<body>

    <div class="navcont" align="center">
        <div class="nav">
            <ul>
                <li><a href="index.html">Главная</a></li>
                <li><a href="ships.html">Корабли</a></li>
                <li><a href="#">Рыбаки</a></li>
                <li><a href="#">Море</a></li>
            </ul>
        </div>
    </div>
    <main>

<table border="1" cellpadding="5" cellspacing="1" >
       <tr>
          <th>Code</th>
          <th>Name</th>
          <th>Price</th>
          <th>Edit</th>
          <th>Delete</th>
       </tr>
       <c:forEach items="${listfloe}" var="iceFloe">
          <tr>
             <td>${iceFloe.id}</td>
             <td>${iceFloe.name}</td>
             <td>${iceFloe.numberOfFishermen}</td>
             <td>
                <a href="editProduct?code=${iceFloe.id}">Edit</a>
             </td>
             <td>
                <a href="deleteProduct?code=${iceFloe.id}">Delete</a>
             </td>
          </tr>
       </c:forEach>
    </table>
    </main>

    <footer>
    <hr>
    <p align="center">
        <small>
        <time>01-2017</time> © Kravchenko Pavel
       </small>
    </p>
    </footer>

</body>
</html>

也就是应该把数据代入表中,但是在控制台中并没有出现这种情况,它写了以下内容,但我认为这不是错误

янв 11, 2018 9:33:29 AM org.apache.tomcat.util.digester.SetPropertiesRule begin
WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:SalvageService' did not find a matching property.
янв 11, 2018 9:33:29 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Server version:        Apache Tomcat/8.0.36
янв 11, 2018 9:33:29 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Server built:          Jun 9 2016 13:55:50 UTC
янв 11, 2018 9:33:29 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Server number:         8.0.36.0
янв 11, 2018 9:33:29 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: OS Name:               Windows 10
янв 11, 2018 9:33:29 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: OS Version:            10.0
янв 11, 2018 9:33:29 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Architecture:          amd64
янв 11, 2018 9:33:29 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Java Home:             C:\Program Files\Java\jre1.8.0_151
янв 11, 2018 9:33:29 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: JVM Version:           1.8.0_151-b12
янв 11, 2018 9:33:29 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: JVM Vendor:            Oracle Corporation
янв 11, 2018 9:33:29 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: CATALINA_BASE:         D:\Developer\JavaScript\.metadata\.plugins\org.eclipse.wst.server.core\tmp1
янв 11, 2018 9:33:29 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: CATALINA_HOME:         C:\Tomcat
янв 11, 2018 9:33:29 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Dcatalina.base=D:\Developer\JavaScript\.metadata\.plugins\org.eclipse.wst.server.core\tmp1
янв 11, 2018 9:33:29 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Dcatalina.home=C:\Tomcat
янв 11, 2018 9:33:29 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Dwtp.deploy=D:\Developer\JavaScript\.metadata\.plugins\org.eclipse.wst.server.core\tmp1\wtpwebapps
янв 11, 2018 9:33:29 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Djava.endorsed.dirs=C:\Tomcat\endorsed
янв 11, 2018 9:33:29 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Dfile.encoding=Cp1251
янв 11, 2018 9:33:29 AM org.apache.catalina.core.AprLifecycleListener lifecycleEvent
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Program Files\Java\jre1.8.0_151\bin;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;C:/Program Files/Java/jre1.8.0_151/bin/server;C:/Program Files/Java/jre1.8.0_151/bin;C:/Program Files/Java/jre1.8.0_151/lib/amd64;C:\ProgramData\Oracle\Java\javapath;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\Program Files\Git\cmd;C:\Server\web\apache\bin;C:\Server\web\mysql\bin;;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Users\TaNaT\.dnx\bin;C:\Program Files\Microsoft DNX\Dnvm\;C:\Users\TaNaT\AppData\Local\Microsoft\WindowsApps;C:\Server\web\apache\bin;C:\Server\web\mysql\bin;;C:\Users\TaNaT\Desktop;;.
янв 11, 2018 9:33:29 AM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["http-nio-8080"]
янв 11, 2018 9:33:30 AM org.apache.tomcat.util.net.NioSelectorPool getSharedSelector
INFO: Using a shared selector for servlet write/read
янв 11, 2018 9:33:30 AM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["ajp-nio-8009"]
янв 11, 2018 9:33:30 AM org.apache.tomcat.util.net.NioSelectorPool getSharedSelector
INFO: Using a shared selector for servlet write/read
янв 11, 2018 9:33:30 AM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 1545 ms
янв 11, 2018 9:33:30 AM org.apache.catalina.core.StandardService startInternal
INFO: Starting service Catalina
янв 11, 2018 9:33:30 AM org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet Engine: Apache Tomcat/8.0.36
янв 11, 2018 9:33:34 AM org.apache.jasper.servlet.TldScanner scanJars
INFO: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
янв 11, 2018 9:33:38 AM org.apache.jasper.servlet.TldScanner scanJars
INFO: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
янв 11, 2018 9:33:38 AM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-nio-8080"]
янв 11, 2018 9:33:38 AM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["ajp-nio-8009"]
янв 11, 2018 9:33:38 AM org.apache.catalina.startup.Catalina start
INFO: Server startup in 7951 ms
Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver'. The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary.
1
scandinavi
4


2
sibir
7

大多数关于启动服务器的信息,但也许我错过了一些东西,最后证明数据在那里。如果需要 - respasitorium https://bitbucket.org/pahan-titan/salvageservice 请帮助,剩下的时间不多了)提前致谢。

javascript
  • 1 1 个回答
  • 10 Views

1 个回答

  • Voted
  1. Best Answer
    Sergey Gornostaev
    2020-01-11T16:02:01Z2020-01-11T16:02:01Z

    您正在使用标签forEach,但不包括 JSTL。

    <%@ page language="java" contentType="text/html; charset=UTF-8"
     pageEncoding="UTF-8"%>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
    
    <!DOCTYPE html>
    ...
    
    • 2

相关问题

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    是否可以在 C++ 中继承类 <---> 结构?

    • 2 个回答
  • Marko Smith

    这种神经网络架构适合文本分类吗?

    • 1 个回答
  • Marko Smith

    为什么分配的工作方式不同?

    • 3 个回答
  • Marko Smith

    控制台中的光标坐标

    • 1 个回答
  • Marko Smith

    如何在 C++ 中删除类的实例?

    • 4 个回答
  • Marko Smith

    点是否属于线段的问题

    • 2 个回答
  • Marko Smith

    json结构错误

    • 1 个回答
  • Marko Smith

    ServiceWorker 中的“获取”事件

    • 1 个回答
  • Marko Smith

    c ++控制台应用程序exe文件[重复]

    • 1 个回答
  • Marko Smith

    按多列从sql表中选择

    • 1 个回答
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Suvitruf - Andrei Apanasik 什么是空? 2020-08-21 01:48:09 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5