簡體   English   中英

將數據庫值從jsp傳遞到javascript

[英]Passing database values from jsp to javascript

如何將所有值從數據庫表傳遞到javascript。 我嘗試使用此方法,但是javascript中僅傳遞了一個值。

這是我的jsp中的代碼

while(rs.next){
String timestamp= new SimpleDateFormat("MM/dd/yyyy hh:mm a").format(rs.getTimestamp("enddate"));
}

這就是它在我的javascript中的接收方式

<script language="JavaScript">

TargetDate = "<%=timestamp%>";

每次我運行腳本時,JavaScript中僅傳遞表中的第一個值。 我怎樣才能解決這個問題?

基本上,您需要遍歷結果集並獲取timetstamp列表。 當前,您僅獲取一個時間戳並顯示它。

然后,您需要將此Java列表轉換為Javacript數組將Java ArrayList轉換為JSON String,並使用JSON.parse()獲取Javascript對象

一旦有了Javascript對象,就可以在那里。

Java中的json: http//json.org/java/

替代方法:

注意:完全不建議在JSP中使用scriptlet。 嘗試使用JSTL標簽庫。

既然您正在尋找,這里就是

    <%
        int length = 3; // in your case, resultset count
        String results[] = new String[length];
        results[0] = "result1";
        results[1] = "result2";
        results[2] = "result3";

        // convert java string array to a javascript array

        StringBuffer sb = new StringBuffer();
        sb.append("[");
        for (int i = 0; i < results.length; i++) {
            sb.append("\"").append(results[i]).append("\"");
            if (i + 1 < results.length) {
                sb.append(",");
            }
        }
        sb.append("]");
        String jsarrayAsJavaString = sb.toString();
    %>
    <script language="JavaScript">
     var target = <%= jsarrayAsJavaString %>
     alert(target[0]); // target is a javascript array object. That's why you can do this
     alert(target); // print the entire javascript array

     //looping JS array
     for(var i=0;i<target.length;i++) {
         alert(target[i]); 
     }
    </script>

</body>

我在您的代碼中看到的問題是,如果我沒有誤解的話; 您嘗試獲取rs的所有時間戳。 但是您聲明一個時間戳。

所以我認為,您應該在rs中循環,並在其中聲明時間戳,對於所有行,應該將其壓入Java端的數組中。

然后,當您嘗試在javasript端進行操作時,應將其作為時間戳json數組返回。 因此,對於javascript,您將擁有一個字符串數組。 在那里,我認為您應該再次循環。

暫無
暫無

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

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