【问题标题】:Accessing specific Grails Params in controller在控制器中访问特定的 Grails 参数
【发布时间】:2013-07-10 09:34:38
【问题描述】:

这可能是一个比 grails 更简单且与 Java 相关的东西,但我有点迷茫,甚至不知道从哪里开始寻找这个,我用谷歌搜索过,但不确定我在追求什么,所以如有可能,请指点指点!

在 grails 应用程序中,我保存了一个表单,一切都很好。在控制器中,我可以看到它通过简单的 println 返回的参数列表,当我想找到当前的特定值时,我执行 params.each 然后将键与预定义的字符串进行比较以找到我想要的字符串,我的问题是:-

我可以,我怎么会,具体说“用键“香蕉”给我参数的值,而不是遍历整个列表来找到它?

还有一种方法可以创建一组新的辅助参数,或者只是另一个普通的旧字典项目(这是正确的术语吗?),我使用正则表达式说“给我所有键匹配的项目模式“XYZ”?

在速度方面可能没有太大区别,因为参数从来没有那么大,但如果可能的话,让事情变得更有效率会很好。

非常感谢任何反馈!

【问题讨论】:

    标签: java grails controller params


    【解决方案1】:

    对于第一个问题,要获取“香蕉”参数,您必须使用:

    params.banana
    

    其次,使用正则表达式查找所有内容:

    def matched = params.findAll { it.key =~ /XYZ/ }
    //or
    Pattern p = ~/XYZ/
    def matched = params.findAll { p.matcher(it.key).matches() }
    

    【讨论】:

    • 非常感谢伊戈尔,这正是我所需要的!再问一个问题,我正在寻找的项目将读取 events[n].id 并且我使用以下内容但没有返回任何内容,我哪里出错了? ` 模式 p = ~/(events.)(\d+).(\w+)/ def 匹配 = params.findAll { p.matcher(it.key).matches() }matched.each{key, value-> println (“找到!” + 键 + “” + 值)}`
    • 哎呀忽略,原来我的模式不正确! :S 非常感谢伊戈尔非常感谢! :)
    【解决方案2】:

    您可以使用一个 params 对象。例如,使用 someurl.com?myparam=test 您可以使用“params.myparam”访问它

    更多信息在这里:http://grails.org/doc/2.2.x/ref/Controllers/params.html

    【讨论】:

    • 对不起,我可能有点厚,我查看了链接,但我并没有真正理解如何做我想做的事,我想在控制器内进行询问并想知道如果有一种方法可以获取特定的参数值(假设我知道关键值是什么)而不必依次检查...
    猜你喜欢
    • 1970-01-01
    • 2019-04-03
    • 2014-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-21
    • 2018-07-27
    • 1970-01-01
    相关资源
    最近更新 更多