【问题标题】:Java Servlet/Jsp/CanvasJs Getting Data from Servlet into JspJava Servlet/Jsp/CanvasJs 从 Servlet 获取数据到 Jsp
【发布时间】:2019-10-10 14:50:31
【问题描述】:

您好,我是 Web 开发和 Java 的新手,提前感谢您的帮助。

我正在尝试将预定义数据从 servlet 获取到 jsp 中的 canvasjs 图表中。

我使用 Eclipse Oxygen 和 TomCat 8.5

简而言之,我的代码如下所示:

ChartValues.java 只是变量实例化,所以我认为不值得展示

jsp文件:

<%@page import="saagnik.ChartValues"%>
<%@page import="java.util.ArrayList"%>
<%@page session="true" %>

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <script type="text/javascript"src="https://canvasjs.com/assets/script/canvasjs.min.js"></script>

        <script type="text/javascript">

        window.onload = function() {

        var datapoints=[];

        var chart = new CanvasJS.Chart("chartContainer1",{
           title:{
                text: "Anzahl der Requests"
            },
            data: [{
                    type: "splineArea",
                    name: "Anzahl",
                    dataPoints: datapoints
                }]
        });

        String test=(String)session.getAttribute("test1");

        datapoints.push({x: new Date(2015, 03, 10), y: 10});

        chart.render();
    </script>
    </header>
    <body>
         <div id="chartContainer1"></div>
    </body>
    </html>

当我评论会话行时,程序可以正常工作,但是当包含它时,图表将无法构建。

Servlet 文件:

    package saagnik; 
    import java.io.IOException;
    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 javax.servlet.http.HttpSession;

    @WebServlet("/ChartServlet")
    public class ChartServlet extends HttpServlet {
        private static final long serialVersionUID = 1L;
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
                doPost(request,response);
        }
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {

            int test =10;
            HttpSession session=request.getSession(true);
            session.setAttribute("test1", test);

            response.sendRedirect("CharttestCanvas3.jsp");

        }
}

还尝试了 doGet 中的请求,例如:

ChartValues[] articles =
                new ChartValues[] {new ChartValues(39500,1.5,0.5,"16/01/09/2019"), new ChartValues(49500,1.5,0.5,"17/01/09/2019")};
        request.setAttribute("articles", articles);

        RequestDispatcher dispatcher = request.getRequestDispatcher("CharttestCanvas3.jsp");
        dispatcher.forward(request, response);

在 Jsp 中使用

ArrayList<ChartValues> chartvalue1 =  (ArrayList<ChartValues>)request.getAttribute("chartdata");

但我得到了相同的结果。

【问题讨论】:

    标签: java jsp servlets canvasjs


    【解决方案1】:

    我的错误是认为脚本和小脚本很相似,并且在运行 jsp 文件时我可以看到完成的图形。运行 JSP 时,该值为空。 我需要在脚本中使用 Javascript 并从 servlet 运行图形以使其工作。

    将 servlet 传输从会话更改为请求。

    小服务程序:

        protected void doGet(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
    
            Integer value=15;
            request.setAttribute("value", value);
            request.getRequestDispatcher("CharttestCanvas3.jsp").forward(request, response);
            }
    

    对于 JSP,我将脚本和 scriptlet 组合在一起以使其工作。

    JSP:

        <%Integer value = (Integer)request.getAttribute("value");%>
    
        <script type="text/javascript">
        window.onload = function() {
        .
        .
        .
        var aa=+'<%=value%>';
        datapoints.push({x: new Date(2015, 03, 10), y: aa});
        chart.render();
        .
        .
        .
        </script>
    

    在 scriptlet 中是来自请求的值。 通过 scriptlet=value 值进入我的脚本,加号将 var 确定为 int。

    【讨论】:

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