我们在尝试将分页的参数和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
所以我们的问题:究竟什么是“限定符分隔符”?什么时候使用?
感谢您的帮助。
答案 0 :(得分:0)
搜索Spring Data Web的文档和代码给了我答案。
限定符分隔符与前缀一起使用。在可分页参数中,它是前缀和页码参数之间或前缀和大小参数之间的分隔符。默认情况下,前缀为空字符串,因此不使用限定符分隔符。但是,如果设置前缀,则限定符分隔符将用于解析http请求的参数。
如果在同一网页中有多个具有分页的表,并且这些表通过标准HTTP请求更新(而不是分别针对每个表的AJAX查询),则设置前缀非常有用。在这种情况下,前缀允许区分每个表的http参数。
setQualifierDelimiter(String qualifierDelimiter): 限定符与实际页码和大小属性之间使用的分隔符。
setPrefix(String prefix): 配置一个通用前缀,作为页码和页面大小参数的前缀。