【问题标题】:Accessing Oracle ATG variables with Javascript使用 Javascript 访问 Oracle ATG 变量
【发布时间】:2023-03-17 09:43:01
【问题描述】:

我正在尝试将 bean 的内容传递给 javascript,以便我可以解析它并创建一个 JSON 对象...(是的,我仍在使用 ATG 9.1)。但是我在从服务器端到客户端时遇到了麻烦......我对这些东西很陌生,并且希望得到任何解释,因为这方面的文档很少而且没有帮助。

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

这样做会在我的浏览器 (Chrome) 上生成“Uncaught SyntaxError: Unexpected token ILLEGAL”

任何智慧都会极大地帮助我学习这些东西。

【问题讨论】:

    标签: oracle javabeans atg


    【解决方案1】:

    问题在于您对 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>
    

    【讨论】:

    • 非常好,感谢您的帮助。第一个建议就像一个魅力!
    猜你喜欢
    • 2017-09-07
    • 2010-11-28
    • 1970-01-01
    • 2019-06-08
    • 2011-10-23
    • 2013-03-04
    • 1970-01-01
    • 2017-01-24
    • 1970-01-01
    相关资源
    最近更新 更多