我正在尝试将 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”
任何智慧都会极大地帮助我学习这些东西。
最佳答案
问题是您对 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>
关于oracle - 使用 Javascript 访问 Oracle ATG 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23438484/