PageableHandlerMethodArgumentResolver和限定符分隔符

时间:2014-08-05 11:30:56

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

我们在尝试将分页的参数和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

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

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

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

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

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

  

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

     

setPrefix(String prefix):   配置一个通用前缀,作为页码和页面大小参数的前缀。