如何将JavaScript变量传递给Groovy控制器?

时间:2013-08-07 01:40:29

标签: javascript grails gsp

我一直在谷歌搜索非常好,但我找不到解决这个问题的方法。我试图从我的Groovy控制器中的GSP文件访问JavaScript变量,但我无法找到如何执行此操作。

示例:

//JavaScript stuff
<script>
    function validateForm(){
         var ret = false
    }
</script>

//Groovy controller stuff
def myAction = {
    println params.ret
}

我如何实现类似的目标?

2 个答案:

答案 0 :(得分:2)

将变量传递给控制器​​的两种方法:

  1. Ajax
  2. 表格提交
  3. <强>的Ajax

    • 使用remoteFunction

      ${remoteFunction(controller: 'actionsController' , action: 'implementNewPixel', params: '\'ret=\' + ret')} 
      
    • 使用Ajax

      var ret = false;
      jQuery.ajax({
          url: "${createLink(controller: 'actionsController', action: 'implementNewPixel')}",
          data: "ret=" + ret,
          success: function (data) {
              alert(data);
          }
      });
      

    表单提交

    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
    <script>
        var ret;
        function validateForm(){
            ret = false;
        }
    
        jQuery(function () {
            jQuery("[name='jftForm']").submit(function () {
                jQuery("[name='ret']").val(ret);
            });
        });
    </script>
    
    <g:form name="jftForm" controller="actionsController" action="implementNewPixel">
        ...
        <g:hiddenField name="ret" value=""/>
        <g:submitButton name="submit" value="Submit"/>
    </g:form>
    

答案 1 :(得分:0)

查看documentaton

params: '\'ret=\' + ret'