【问题标题】:Grails - How to remove multiple params from controllerGrails - 如何从控制器中删除多个参数
【发布时间】:2013-05-06 04:21:27
【问题描述】:

我是 grails 新手并使用 2.1.1 版本

我一直在处理将数据从视图传递到控制器的参数 即我已将 URL 提交给控制器:

http://example.com/save?param1=one&param2=two&param3=three&param4=four

然后 URL 将在控制器中使用 save() 处理,我使用它并将一些参数传递给另一个视图。像这样的代码

redirect action: "index", params:params

但是当我成功重定向时,所有参数都包含(param1,param2,param3 & param4)

http://example.com/index?param1=one&param2=two&param3=three&param4=four

我只想在我的索引视图中有 param1。 目前我这样做删除参数使用:

params.remove("param2")
params.remove("param3")
params.remove("param4")

有没有什么简单的方法可以删除 grails 中的多个参数?

【问题讨论】:

    标签: grails parameters controller parameter-passing


    【解决方案1】:

    Igor 的答案可能是您想要的,但您可以在一行中删除多个键:

    ['param1', 'param2', 'param3'].each { params.remove it }
    

    或者你可以删除除一个以外的所有内容:

    params.keySet().asList().each { if ('param1' != it) params.remove(it) }
    

    我正在使用asList() 复制集合以避免 ConcurrentModificationException

    【讨论】:

      【解决方案2】:

      如果您只需要一个参数,最简单的方法是创建一个新对象:

      redirect action: "index", params: [param1: params.param1]
      

      【讨论】:

      • 感谢伊戈尔它非常有帮助:D
      猜你喜欢
      • 2011-08-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-02
      相关资源
      最近更新 更多