spring - Grails:仅POST或GET httprequest参数

标签 spring grails

在controller和gsp中,有两个可用变量:

  • params-tahat包含所有参数的映射(来自查询字符串的GET和来自表单的POST)
  • request-HttpServletRequest对象

  • 如何获取仅用于POST的参数或仅用于GET(查询字符串)的参数?我需要两种类型的参数,但是在不同的 map 中。

    我知道,HttpServletRequest对象包含有关查询字符串的信息,但是我正在寻找不实现查询字符串解析器的解决方案。

    最佳答案

    我已经通过使用org.codehaus.groovy.grails.web.util.WebUtils解析查询字符串解决了这个问题,然后将这些数据放入HttpServletRequest属性。

    现在,我可以使用request.getAttribute('paramsGet')request.getAttribute('paramsPost')

    Grails过滤器非常有用,因此:

    package com.selly.filters
    
    import org.codehaus.groovy.grails.web.util.WebUtils
    
    class ParamsFilters {
    
        List globalParams = [
            "controller",
            "action",
            "format"
        ]
    
        def filters = {
            all(controller:'*', action:'*') {
                before = {
                    Map paramsRequest = params.findAll {
                        return !globalParams.contains(it.key)
                    }
    
                    Map paramsGet = WebUtils.fromQueryString(request.getQueryString() ?: "")
                    Map paramsPost = paramsRequest.minus(paramsGet)
    
                    request.setAttribute('paramsGet', paramsGet)
                    request.setAttribute('paramsPost', paramsPost)
    
                    //println request.getAttribute('paramsGet')
                    //println request.getAttribute('paramsPost')
                }
                after = { Map model ->
    
                }
                afterView = { Exception e ->
    
                }
            }
        }
    }
    

    关于spring - Grails:仅POST或GET httprequest参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21204089/

    相关文章:

    java - 表 'acme_ms.hibernate_sequence' 不存在

    spring - 如何使用@EJB、@PersistenceContext、@Inject、@Autowired 注入(inject)@FacesValidator

    grails - 在Grails中禁用自动生成URL

    testing - stub 常规类的所有方法?

    java - 带有自定义缓存管理器实现的 Spring 缓存抽象不起作用

    java - 从项目中任何类内的 applicationContext 访问 spring 配置的 HashMap

    spring - 引用grailsApplications在resources.xml或其他xml中

    Grails spock-如何模拟/ stub 类的特定方法

    jquery - 如何在 Grails 中包含 jquery.js?

    java - Hibernate Validator 注释不适用于 spring mvc