Java SpringMVC:动态参数名还是使用正则表达式的参数名?

Java SpringMVC:动态参数名还是使用正则表达式的参数名?,java,spring,spring-mvc,jquery-plugins,jquery-bootgrid,Java,Spring,Spring Mvc,Jquery Plugins,Jquery Bootgrid,我正在尝试这个叫做的网格组件。在AJAX模式下,它将POSTs参数发送到服务器,与排序相关的参数如下所示: sort[colname]=desc colname零件的变化取决于您对网格的排序方式 SpringMVC中是否有任何方法可以使用@RequestParam捕获排序参数 例如,类似于: @RequestParam("sort[{\\*}]") Map<String, String> sort @RequestParam(“排序[{\\*}])映射排序 这只是一个胡乱猜测,

我正在尝试这个叫做的网格组件。在AJAX模式下,它将
POST
s参数发送到服务器,与排序相关的参数如下所示:

sort[colname]=desc
colname
零件的变化取决于您对网格的排序方式

SpringMVC中是否有任何方法可以使用
@RequestParam
捕获
排序
参数

例如,类似于:

@RequestParam("sort[{\\*}]") Map<String, String> sort
@RequestParam(“排序[{\\*}])映射排序
这只是一个胡乱猜测,我怀疑是否有任何干净的方法可以做到这一点。任何关于如何处理它的建议都会很好


更新:我也尝试过这个简单的版本,我认为可能会有用

@RequestParam("sort") Map<String, String> sort
@RequestParam(“排序”)映射排序
请参见bootgrid论坛:

这确实很愚蠢,但因为无法在服务器端解析动态参数,您需要通过以下方式在bootgrid配置中定义requestHandler,从排序参数创建新的请求参数:

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;
}
在弹簧控制器中:

@RequestParam(value = "sortBy", required = false) final String sortBy,
            @RequestParam(value = "sortDir", required = false) final String sortDir
不要忘记将这些参数标记为非必需参数,因为排序并不总是发布到服务器端