【问题标题】:Simple AJAX example with Grails使用 Grails 的简单 AJAX 示例
【发布时间】:2016-03-02 13:59:52
【问题描述】:

我对@9​​87654323@ 很陌生,我正在尝试了解 AJAX 在 Grails 中的工作原理。为此,我尝试从here 修改乘法 AJAX 示例,以便我的应用程序在页面上显示带有 AJAX 的输入字符串。 (澄清这一点:用户输入例如“foo”,页面应在搜索字段下显示“foo”)

这是我目前的代码:

我的index.gsp 模板包含一个输入表单并应显示在表单中输入的字符串:

<!doctype html>
<html>
<head>
</head>
<body>    
<div id="search">
    <g:render template="searchForm"/>
</div>
<div id="results">
    <g:render template="searchResultForm"/>
</div>
</body>
</html>

我的_searchForm.gsp 模板,其中包括搜索表单:

<g:form>
    <label for="suchen"></label><g:textField name="suchen"/>
    <g:submitToRemote url="[controller:'search', action:'search']" update="results" value="Suchen"/>
</g:form>

我的_searchResultForm.gsp 模板将显示所有结果(在我的例子中只是搜索字符串)

${results}

我的SearchController 将获取搜索字符串并返回相同的字符串:

class SearchController {

    ...

    def search(String s) {
        return s
    }
}

我的问题是,在我在输入表单中写入内容并按下发送按钮后,什么也没有发生。没有错误但它也不会在输入表单下显示输入字符串。

您可能想知道我为什么要尝试使用 AJAX 执行此操作:我的目的是实现 AJAX 搜索。当 AJAX 部分工作时,将搜索逻辑添加到控制器应该不是问题。

【问题讨论】:

标签: ajax grails grails-3.0.9


【解决方案1】:

您应该显示您的 searchResultForm 模板。但我猜你的问题是你没有将模型正确发送到 gsp,而且你还没有在响应中设置 gsp

如果这是您的模板 gsp:

<div>${s}</div>

你的行动必须是:

def search(String s) {
        render template: 'searchResultForm', model:[s:s]
    }

通过这种方式,动作生成要与给定模型一起发送的html,由jquery渲染到div中。

【讨论】:

    猜你喜欢
    • 2014-03-11
    • 1970-01-01
    • 1970-01-01
    • 2015-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-28
    相关资源
    最近更新 更多