如何通过Ajax将变量从grail的Controller传递给gsp文件?

时间:2013-08-16 20:55:48

标签: jquery ajax grails

我试图在用户输入一些数据后显示一条警告信息,表示祝贺。问题是我验证了控制器中的输入。如果有错误,我将相应的变量传递给我的视图以高亮显示不正确的字段我不知道如何显示祝贺警告框。这是我尝试过但它不起作用。有帮助吗?谢谢!

//In my ImplementNewPixel.gsp
<script>
         $.ajax({
                success:function(result){
                    if(result.message != null && result.message != ""){
                        alert(result.message);
                    }
                }
            });      
</script>

//In my actionsController:
def validate = {

    String message = ""

    if(Info is not valid){
       //return appropriate info to highlight incorrect textfields
    }

    else{
       message = "Congratulations your tracking pixel has been created and added!" as JSON
    }

    return [message: message, OtherStuff: OtherStuffThatIPassToMyGSP]
}

这不是我的确切代码。我只讨论了涉及这个问题的主要内容。

2 个答案:

答案 0 :(得分:1)

只需在控制器操作模型中返回您的消息变量(请参阅http://grails.org/doc/latest/guide/theWebLayer.html#modelsAndViews),如:

return [message : message]

...并在你的gsp中使用$ {message}来检索它的值,如下所示:

alert("${message}")

答案 1 :(得分:0)

由于你使用的是ajax,你需要在你的javascript库理解的东西中返回模型。您似乎正在使用jQuery,它将根据响应的内容类型自动确定数据类型。

class MyController {
    def validate() {
        return [message: "hello there"] as JSON
    }
}