簡體   English   中英

如何將Java變量傳遞給javascript

[英]how to pass a java variable to javascript

我想將Java變量傳遞給javascript,但我的jsp頁面中沒有body標簽,因此我無法通過這種方式傳遞它:

<body onload="start(<%=otp1%>);">

我需要運行此javascript onload。 還有其他方法可以將Java變量傳遞給javascript嗎? 我怎樣才能做到這一點?

 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<%
    String otp1 = (String) session.getAttribute("chartResult");
%>

    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>Flot Examples: Basic Usage</title>

    <link href="../theme/bower_components/flot/examples/examples.css" rel="stylesheet" type="text/css">
    <%--   <link href="../theme/bower_components/flot/examples/examplesrtl.css" rel="stylesheet" type="text/css">--%>
    <%--    <!--[if lte IE 8]><script language="javascript" type="text/javascript" src="../theme/bower_components/flot/excanvas.min.js"></script><![endif]-->--%>
    <script language="javascript" type="text/javascript" src="../theme/bower_components/flot/jquery.js"></script>
    <script language="javascript" type="text/javascript" src="../theme/bower_components/flot/jquery.flot.js"></script><!-- jQuery -->
    <style type="text/css">
        body {
            font: 11px/1.1em "proxima-nova", Helvetica, Arial, sans-serif;
        }

        h2 {
            margin-top: 0;
        }
    </style>

   <script type="text/javascript" >
             function start(otp1){

                var d1 = [];
                for (var i = 0; i < 14; i += 0.5) {
                    d1.push([i, Math.sin(i)]);
                }

                var d2 = [[0, 3], [4, 8], [8, 5], [9, 13]];

                // A null signifies separate line segments

                var d3 = [[0, 12], [7, 12], null, [7, 2.5], [12, 2.5]];

                $.plot("#placeholder", [ d1, otp1, d3 ]);

                // Add the Flot version string to the footer

                $("#footer").prepend("Flot " + $.plot.version + " &ndash; ");
        }

    </script>


<div id="header" >
    <h2>Basic Usage</h2>
</div>

<div id="content" >
    <div class="demo-container">
        <div id="placeholder" class="demo-placeholder"></div>
    </div>

    <p>You don't have to do much to get an attractive plot. Create a placeholder, make sure it has dimensions (so Flot knows at what size to draw the plot), then call the plot function with your data.</p>

    <p>The axes are automatically scaled.</p>

</div>



<div id="footer">
    Copyright &copy; 2007 - 2014 IOLA and Ole Laursen
</div>

Javascript在客戶端執行,而Java在服務器端執行。 因此,一旦從服務器將jsp / html頁面加載到瀏覽器中,就可以執行此操作。

您可以在jsp文件中執行此操作,但不能在js文件中執行此操作,因為在服務器端處理jsp文件之前,先將其作為html呈現給瀏覽器,而js文件在客戶端執行,因此不會處理Java代碼

假設在服務器端將otp1設置為request屬性,則可以像下面這樣在jsp上訪問它,它更清晰易讀

${requestScope.otp1}

采用 :

var jsVar="<%out.print(otp1);%>";

在你的JavaScript中

您可以在頁面上腳本標記的開頭添加該Java值:

var value = <%=otp1%>;

或者,如果值為String:

var value = "<%=otp1%>";

您可以將變量放在隱藏字段中,或者像直接在js中建議的slomek一樣。 作為onload-Method的替代,您可以使用jqueries ready方法。 請參閱: https//api.jquery.com/ready/

使用內聯腳本,例如:

 <script type="text/javascript" >

                var d1 = [];
                for (var i = 0; i < 14; i += 0.5) {
                    d1.push([i, Math.sin(i)]);
                }

                var d2 = [[0, 3], [4, 8], [8, 5], [9, 13]];

                // A null signifies separate line segments

                var d3 = [[0, 12], [7, 12], null, [7, 2.5], [12, 2.5]];

                $.plot("#placeholder", [ d1, <%=otp1%>, d3 ]);

                // Add the Flot version string to the footer

                $("#footer").prepend("Flot " + $.plot.version + " &ndash; ");

    </script>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM