2014-05-02 53 views
2

我想將一個bean的內容傳遞給javascript,以便我可以解析它並創建一個JSON對象...(是的,我仍然在ATG 9.1上)。然而,我無法從服務器端獲得客戶端....我是這個新東西,並會感謝任何解釋,因爲這個文件是稀缺的,沒有幫助。使用Javascript訪問Oracle ATG變量

<dsp:tomap var="cartMap" bean="MyShoppingCartModifier.order" recursive="true"/> 
<script> 
    var myCartMap = "${cartMap}"; 
    //Logic (easy) 
</script> 

這樣做產生「未捕獲的SyntaxError:意外的標記非法」我的瀏覽器(Chrome)

任何智慧將大大幫助我在我的追求在學習這些東西。

回答

2

問題是您使用tomap標記。你不能傳入一個完整的tomap對象,因爲tomap標籤不會創建一個很好的可解析的json對象。

你應該:

1)在你的標籤內自己格式化json。從訂單中只選擇你想要的值。

<script> 
    var myCart = { 
     total : '<dsp:valueof bean="MyShoppingCartModifier.order.priceInfo.total">' 
     ... 
    } 

    // Then use myCart for something here 
</script> 

或2)有一個鮮爲人知的JSP以JSON庫中找到這裏,http://json-taglib.sourceforge.net,這是非常有用的。爲了使用它,你需要創建一個單獨的頁面,就像orderJSON.jspf一樣,它用來從你的訂單生成一個純json對象。然後在你需要這個js的頁面中,你可以這樣做:

<script> 
    var myCart = <%@ include file="/path/to/orderJSON.jspf" %> 
    // Then use myCart for something here. 
</script> 
+0

很好,謝謝你的幫忙。第一個建議就像一個魅力! – bneigher