我正在尝试这个名为jQuery Bootgrid的网格组件。在AJAX模式下,服务器的POST
参数和排序相关的参数如下:
sort[colname]=desc
colname
部分会根据您对网格的排序方式而改变。
Spring MVC中是否有任何方法使用@RequestParam
来捕获sort
param?
例如:
@RequestParam("sort[{\\*}]") Map<String, String> sort
这只是一个疯狂的猜测,我怀疑有任何干净的方法来做到这一点。关于如何处理它的任何建议都会很棒。
更新:还尝试了这个我认为可能有效的简单版本
@RequestParam("sort") Map<String, String> sort
答案 0 :(得分:1)
请参阅bootgrid论坛:https://github.com/rstaib/jquery-bootgrid/issues/111
这真的很傻但是因为无法在服务器端解析动态参数,所以需要通过以下列方式在bootgrid配置中定义requestHandler,从sort参数创建新的请求参数:
requestHandler: function (request) {
if (request.sort) {
request.sortBy = Object.keys(request.sort)[0]; //this only gets first sort param
request.sortDir = request.sort[request.sortBy];
delete request.sort
}
return request;
}
在Spring Controller中:
@RequestParam(value = "sortBy", required = false) final String sortBy,
@RequestParam(value = "sortDir", required = false) final String sortDir
不要忘记将这些参数标记为不需要,因为排序并不总是发布到服务器端。