【发布时间】:2014-01-20 18:07:31
【问题描述】:
我正在尝试使用此处找到的 Grails 购物车插件:http://grails.org/plugin/shopping-cart
我能够在我的应用程序中成功安装插件,并在我的控制器中注入服务:
class TestController {
def shoppingCartService
def index() {
def s = new DomainObj(name: "A Plain Ole Domain Object")
s.addToShoppingCart()
}
}
这似乎将产品添加到我的购物车中,正如我所料。但是,我现在遇到的问题实际上是从购物车中列出物品。根据调试器,运行上述代码后,购物车中确实有一个商品,因为它返回:
com.metasieve.shoppingcart.ShoppingItem : 1
该项目已正确添加到购物车,但现在我想再次列出该项目的名称,所以在这种情况下,我想显示名称A Plain Ole Domain Object。我该怎么做?
我不确定从购物车中取回实际对象的语法。文档没有清楚地描述如何做到这一点,因为它只是说明以下应该起作用:
def checkedOutItems = shoppingCartService.checkOut()
checkedOutItems.each {
println it['item']
println it['qty']
}
但是输出
com.metasieve.shoppingcart.ShoppingItem : 1 ,这只是对购物车中某些任意项目的引用。我想取回我的项目的实际名称。
提前致谢。
编辑:
我的域类(DomainObj)定义如下:
class DomainObj extends com.metasieve.shoppingcart.Shoppable {
String name
static constraints = {
name blank: false
}
}
编辑#2:
def index() {
def s = new DomainObj(name: "A Plain Ole Domain Object")
s.addToShoppingCart()
def r = new DomainObj(name: "Second Plain Ole Domain Object")
r.addToShoppingCart()
def checkedOutItems = shoppingCartService.checkOut()
println currentItems
println "-----"
checkedOutItems.each {
println it['item']
println it['qty']
}
}
这个的输出是:
[com.metasieve.shoppingcart.ShoppingItem : 1, com.metasieve.shoppingcart.ShoppingItem : 2]
com.metasieve.shoppingcart.ShoppingItem : 2
1
com.metasieve.shoppingcart.ShoppingItem : 1
1
【问题讨论】:
标签: grails grails-plugin