【问题标题】:PageableHandlerMethodArgumentResolver and qualifier delimiterPageableHandlerMethodArgumentResolver 和限定符分隔符
【发布时间】:2014-09-28 01:13:46
【问题描述】:

我们在尝试将分页参数和 HTTP 请求排序转换为 Spring Data/Spring MVC 中的 Pageable 对象时遇到问题。我们的一些排序参数有一个下划线字符,当对它们进行排序时,我们得到了一个错误。在日志中,这些参数在下划线字符处被修剪。

我们发现 org.springframework.data.web.PageableHandlerMethodArgumentResolver 使用下划线作为限定符分隔符的默认值。现在,我们想知道修改这个默认值是否安全,因为我们不知道这个限定符分隔符的用途,以及这会产生什么后果。

PageableHandlerMethodArgumentResolver类中setQualifierDelimiter的文档提到:

  The delimiter to be used between the qualifier and the actual page number 
  and size properties

所以我们的问题是:“限定符分隔符”到底是什么?什么时候用?

感谢您的帮助。

【问题讨论】:

    标签: spring sorting spring-mvc pagination spring-data


    【解决方案1】:

    搜索 Spring Data Web 的文档和代码给了我答案。

    限定符分隔符与前缀一起使用。在可分页参数中,它是前缀和页码参数之间的分隔符,或者是前缀和大小参数之间的分隔符。默认情况下,前缀是空字符串,因此不使用限定符分隔符。但是,如果设置了前缀,将使用限定符分隔符来解析http请求的参数。

    如果您在同一个网页中有多个带有分页的表,并且这些表是通过标准 HTTP 请求更新的(而不是对每个表分别进行 AJAX 查询),则设置前缀很有用。在这种情况下,前缀允许区分每个表的 http 参数。

    setQualifierDelimiter(字符串限定符分隔符): 在限定符与实际页码和大小属性之间使用的分隔符。

    setPrefix(字符串前缀): 为页码和页面大小参数配置一个通用前缀。

    【讨论】:

      猜你喜欢
      • 2014-04-23
      • 2016-07-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-04
      • 1970-01-01
      相关资源
      最近更新 更多