包含带有submitToRemote标记的url地图中的id

时间:2014-12-23 21:44:53

标签: grails view gsp params

我正在构建查询结果列表,对于每个结果,我希望他们能够选择一个结果,并将结果放在同一页面上。我可以使用单选按钮和一个额外的提交按钮,但我不喜欢看待结果的方式。我的首选解决方案是拥有一个按钮或每个结果的链接,并在选择时更新正确的div。我尝试使用submitToRemote

<g:each in="${users}" var="user">
    <tr>
        <td>
            <g:submitToRemote value="${user.firstName} ${user.lastName}" 
                url="[action: 'modifyUser', id:'${user.id}']" update ="adminSpace"
                class="btn btn-primary"/>
        ...

问题是网址中的id字段,我确定我没有正确访问它,但我不能在我的生活中找到正确的语法。

目前我正在:

Message: named capturing group is missing trailing '}'

我查看过文档(submitToRemote),其中说的是:

  

url - 要提交的网址,包含操作键,控制器和ID或字符串值的地图

然而,它没有给出关于如何指定id的任何指示。当我手动为id添加值时,它确实有效(例如:

url="[action: 'modifyUser', id: '1']"

)。然而,这并不是非常有用。那么如何在submitToRemote的范围内将id传递给我的动作?

2 个答案:

答案 0 :(得分:0)

如果您尝试使用createLink方法怎么办?类似的东西:

<g:submitToRemote value="${user.firstName} ${user.lastName}" 
                url="${createLink(action: 'modifyUser', id: user.id)}" update ="adminSpace"
                class="btn btn-primary"/>

答案 1 :(得分:0)

不要将user.id放在${}中:

<g:submitToRemote value="${user.firstName} ${user.lastName}" 
    url="[action: 'modifyUser', id: user.id]" update="adminSpace" 
    class="btn btn-primary"/>

并且您的代码运行正常。