2012-07-18 48 views
0

我需要維護一些數據客戶端進行表單驗證。數據是在服務器端創建的,然後我的計劃是將其保存在全局JavaScript對象中,以便可以根據需要通過其他函數訪問它。如何使用來自JSP的數據填充全局JavaScript對象?

我的代碼目前看起來是這樣的:

<html> 
<body> 
<script language="javascript" type="text/javascript"> 
    window.globVal = new Object(); 
<% 
    SomeObject o = new SomeObject(); 
    ArrayList a = o.getArrayList(); 
    for(int i = 0; i < a.size(); i++){ 
     String str = a.get(i); 


%> 
     window.globVal[<%= str %>] = <%= o.retrieve(str) %>; 
    <%}%> 
    </script> 

... 
[SOME OTHER STUFF] 
.... 
    <script language="javascript" type="text/javascript"> 
     function myFunc(){ 
     alert("My global obj: " +window.globVal); 
    } 
    </html> 

警報打印出「我的全球OBJ:未定義

我在做什麼錯

+1

globalVal = new Array();這個怎麼樣 ? – Nirmal 2012-07-18 10:56:55

+0

沒有。仍然是相同的問題 – Tom 2012-07-18 11:19:51

+0

是腳本根本沒有運行的問題? – Tom 2012-07-18 11:21:21

回答

-1

我想創建對象/數組?在Java中,使用JSON編碼器將其序列化爲JSON,將JSON字符串綁定到請求參數,並從此JSON字符串初始化JavaScript對象:

<script> 
    window.globVal = ${theJsonString}; 
</script> 
+0

爲什麼要將其表示爲JavaScript字符串,然後立即將其傳遞給JSON.parse?只需'window.globVal ='$ {theJsonString}'。 – Quentin 2012-07-18 11:42:28

+0

當然,你是對的。 – 2012-07-18 11:44:14

+1

這可能是更好的方法,但不能解決Array/Object不可見的問題 – Tom 2012-07-18 11:46:29

相關問題