- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
使用最新的 Spring-MVC (3.1.2.RELEASE)
我有一个可分页的 REST 方法,如下所示:
@RequestMapping(value = "/myThings", method = RequestMethod.GET)
public @ResponseBody
Page<MyThings> findMyThings(@Valid PageRequest pageRequest) {
Page<MyThings> myThings = myService.findMyThings(pageRequest);
return myThings;
}
尝试使用 org.springframework.web.client.RestOperations 进行测试。一切正常,特别是对于不可分页的请求。但是,对于可分页的对象,REST 方法中接收到的“pageRequest”对象是由默认构造函数创建的对象,而不是创建并传递到调用中的对象。
这是我尝试过的(其中restTemplate是“RestOperations”的实例:
.... // make the pageRequest object
if (pageRequest != null) {
params.put("pageRequest", pageRequest);
}
String json = restTemplate.getForObject(restEndpoint + "/myThings",
String.class, Collections.unmodifiableMap(params));
我知道问题出在这一侧 - 如果我部署到 Tomcat 并通过 URL 传递 pageRequest 参数,服务器端的分页将完美运行。此外,我逐步完成了 Spring 代码,看起来如果将 pageRequest 放入模型中,它将被拉出,否则将获得默认值,这就是我所得到的。
有人可以帮忙吗?
谢谢!
最佳答案
在其中传递 Collections.unmodifyingMap(params)
的 getForObject 参数实际上是 Object... urlVariables
,其中变量是 @PathVariable 类型声明的占位符,因此这仅适用于具有 @PathVariables
的声明
另一种方法是按现有方式使用它,但以这种方式支持查询参数:
String json = restTemplate.getForObject(restEndpoint + "/myThings?pagerequest={pageRequest}",
String.class, Collections.unmodifiableMap(params));
关于java - 如何使用 Spring RestOperations 在单元测试中发送 PageRequest 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11780046/
我有: Map vars = new HashMap(); String r = restOperations.getForObject(url, String.class, vars); 在我的测试
似乎网络上到处都有人们 Autowiring 实现类 RestTemplate 而不是它的接口(interface) RestOperations 的例子。即使在 Spring 手册和文档中,该接口(
使用最新的 Spring-MVC (3.1.2.RELEASE) 我有一个可分页的 REST 方法,如下所示: @RequestMapping(value = "/myThings", method
已关闭。此问题需要 debugging details 。目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and the
我是一名优秀的程序员,十分优秀!