Spring PageableHandlerMethodArgumentResolver和限定符分隔符

Spring PageableHandlerMethodArgumentResolver和限定符分隔符,spring,sorting,spring-mvc,pagination,spring-data,Spring,Sorting,Spring Mvc,Pagination,Spring Data,在SpringData/SpringMVC中将HTTP请求的分页和排序参数转换为可分页对象时,我们遇到了一个问题。我们的一些排序参数有一个下划线字符,当对它们进行排序时,我们得到了一个错误。在日志中,这些参数在下划线字符处被修剪 我们发现org.springframework.data.web.PageableHandlerMethodArgumentResolver使用下划线作为限定符分隔符的默认值。现在,我们想知道修改这个默认值是否安全,因为我们不知道这个限定符分隔符是用来做什么的,以及这会

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

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

PageableHandlerMethodArgumentResolver类中setQualifierDelimiter的文档提到:

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


感谢您的帮助。

通过搜索Spring Data Web的文档和代码,我找到了答案

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

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

SetQualifierDelimiter字符串限定符分隔符: 限定符与实际页码和大小属性之间使用的分隔符

setPrefixString前缀: 配置要在页码和页面大小参数前面加上的常规前缀

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