我正在尝试将地图从gsp发送到控制器,但地图被视为控制器中的字符串
<g:remoteFunction
action="updateCart"
params="{startDate:stDt,endDate:endDt,cartId:pkid,shoppingCart:'${shoppingCart}'}"
update="resourcesSelectedId"/>
这里的shoppingCart是我试图发送的grails地图变量
编辑:
我上面发布的代码中有一个拼写错误。错过了参数中的“{”
params="{startDate:stDt,endDate:endDt,cartId:pkid,shoppingCart:'${shoppingCart}'}"
根据我在下面的评论更新了我的问题
在我的情况下,shoppingCart是一个对象,例如,它包含每个项目的项目和数量。我根据所选项目和数量应用了一些规则,并确定每个项目的价格并将其显示给用户。我想这样处理控制器。每当用户更新购物车时,我需要重新计算并将其显示给用户。有没有其他更好的方法,你建议这样做而不是来回传递对象
答案 0 :(得分:1)
无论何时使用params属性,它都必须采用Map的格式,这意味着包括[ ]
。这也意味着您可以从任何值中排除${ }
,因为Grails会将所有这些值解析为潜在变量。
<g:remoteFunction
action="updateCart"
params="[startDate:stDt,endDate:endDt,cartId:pkid,shoppingCart:shoppingCart]"
update="resourcesSelectedId"/>
但是,请记住,您无法发送对象。我不确定您的示例中是什么shoppingCart
,但它只能是一个可以表示为String的简单值。可能你想要shoppingCart.id
?否则,这应该让你朝着正确的方向前进。
答案 1 :(得分:0)
我可以通过以下步骤来解决这个问题