json - 使用 Spring 和 JSON 进行 Dojo Grid 排序

标签 json spring spring-mvc dojo dojox.grid

所以我有一个使用 Dojo 和 Spring 的 webapp。我在应用程序中有一些使用 Json dojo 商店加载的网格。事情似乎还好,但我现在正在尝试实现排序。根据this link dojo 不会对 Stores 中的网格进行排序,而是将其留给服务器处理。好的,我假设我可以使用它,但是我在实际操作时遇到了问题。

为了将数据输入我的网格,我让它们调用由我的 Controller 捕获的路径。例如,要加载我的 Job 网格,dojo 创建 store 并调用/job/data。这是我的 Controller 代码:

@RequestMapping(value="/job/data", method=RequestMethod.GET,
        headers="Accept=application/json")
public @ResponseBody List<Job> getData() {
    return jobService.getAll();
}

我正在使用 Jackson Json 处理器,因此这对于返回 Json 格式的数据非常有效。 Dojo 获取数据并毫无问题地显示它。但是,当用户单击列标题进行排序时,Dojo 会附加到称为创建类似内容的路径上(例如,在列 programName 上排序时):/job/data?sort(+programName)

我的问题是,虽然这段代码仍然调用上述方法,但我不确定如何访问部分附加内容。我尝试使用 @RequestParam参数,但这不起作用,实际上使该方法完全停止工作。这是我尝试过的:
@RequestMapping(value="/job/data", method=RequestMethod.GET,
        headers="Accept=application/json")
public @ResponseBody List<Job> getData(@RequestParam("sort") String sort) {
    log.info("Not getting here anymore");
}

有人有想法么?我想知道问题的一部分是否是附加部分没有遵循 ?sort=something 的正常语法。无论哪种方式,正如我所说,添加 @RequestParam无论如何都不能使用这种方法。我的意思是即使该方法被称为 /工作/数据 再次没有附加参数,我得到一个错误。如果您需要我的更多信息,请告诉我,因为这个问题是为了工作,我真的可以使用一些见解。谢谢。

更新

我确实找到了 a link经过大量搜索几乎解决了这个问题。但是当然 Spring 家伙自己遇到了我的问题,他的代码没有解决它。他确实提到:

JsonStore sends its "sort" parameter in the form of "sort(+fieldName1,+fieldName2,-fieldName3,...)", thus the entire thing becomes the parameter key. This is inconvenient to handle in Spring MVC as it requires dropping down to HttpServletRequest and iterating through parameter keys to find the one beginning with "sort", as opposed to being able to use the @RequestParam handler argument annotation.



那么有人可能知道我会怎么做吗?

更新 2

任何人?我只是在问是否有人可以为我指出如何实现我已经找到的解决方案的正确方向。如何从 spring Controller 方法访问 HttpServletRequest 对象,以便我可以访问 Dojo 发送的搞砸的排序参数?

最佳答案

如果您包括 HttpServletRequest request到 Controller 方法(它由spring MVC自动注入(inject)),您可以通过以下方式访问不同的参数:

Set parameters = request.getParameterMap().keySet();
for(Object param : parameters){
  //Here you can process the params to retrieve the names and ordering direction
}

关于json - 使用 Spring 和 JSON 进行 Dojo Grid 排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8448855/

相关文章:

arrays - 拆分字符串数组

json - 在 Angular 7 项目中导入 JSON

Spring框架中的Java配置

java - org.springframework.beans.factory.UnsatisfiedDependencyException : Error creating bean

java - Spring框架中的属性注入(inject)

mysql - 尝试从 spring mvc 应用程序在 mysql 中插入数据时获取 java.io.EOFException

javascript - JSON.stringify 和 JSON.parse 在 IE9 中不起作用?

java - 使用 Kotlin 使用 OkHttp 发送 JSON 数据

java - Spring:按名称获取内联bean

java - 404-MVC 中找不到资源