【问题标题】:including id in url map with submitToRemote tag在带有 submitToRemote 标记的 url 映射中包括 id
【发布时间】:2015-02-22 01:45:59
【问题描述】:

我正在构建一个查询结果列表,对于每个结果,我希望他们能够选择一个,并将该结果显示在同一页面上。我可以使用单选按钮和一个额外的提交按钮,但我不喜欢结果的样子。我首选的解决方案是为每个结果添加一个按钮或链接,并在选择时更新正确的 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"/>
        ...

问题是 url 中的 id 字段,我确定我没有正确访问它,但我终生无法找到正确的语法。

目前我得到:

Message: named capturing group is missing trailing '}'

我查看了文档 (submitToRemote),上面写着:

url - 要提交到的 url,可以是包含操作键、控制器和 id 的映射,也可以是字符串值

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

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

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

【问题讨论】:

  • 如果有帮助的话,我正在使用 Grails 2.3.8...

标签: grails view gsp params


【解决方案1】:

不要将user.id 放入${} 之类的:

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

您的代码运行良好。

【讨论】:

    【解决方案2】:

    如果您尝试使用 createLink 方法会怎样?比如:

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

    【讨论】:

    • 这给了我一个找不到方法的错误,因为 url 字段实际上是在调用这个方法,它不接受字符串。所以你的回答让我走上了正轨:url="${[action: 'modifyUser', id: user.id]}" 这正是我所需要的。如果在其中编辑您的答案,我会接受它,因为它让我走上了正确的道路。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-20
    • 2011-05-21
    • 1970-01-01
    • 2012-05-11
    • 1970-01-01
    相关资源
    最近更新 更多