小编Ken*_*hen的帖子

Spring MVC - 无法将请求参数映射为方法中的Map参数?

我想要做的是使用@RequestParam将地图传递给Controller中的方法,但它似乎不起作用.虽然这在Struts 2中可用作值绑定.

以下是我正在尝试的:在使用JQuery的JSP中:

var order = {};
order['seq'] = "ASC";
var criteria = {};
criteria['label'] = "Directory";

$.post(context + 'menu/list',
    {"orders" : order,
     "criterias" : criteria}
Run Code Online (Sandbox Code Playgroud)

我要发布的参数是"地图"对象顺序和列表菜单的条件.在Java中:

    @RequestMapping("/{collection}/list")
public @ResponseBody Map<String, ? extends Object> list(@PathVariable String collection,
        @RequestParam("criterias") Map<String, String> criteria,
        @RequestParam("orders") Map<String, String> order) {
Run Code Online (Sandbox Code Playgroud)

但是,当我在Java中打印出地图标准和顺序时,它将获取以下所有值:

Criteria: {criterias[label]=Directory, orders[seq]=ASC}
Order: {criterias[label]=Directory, orders[seq]=ASC}
Run Code Online (Sandbox Code Playgroud)

可以使用Spring中的@RequestParam来初始化Map参数吗?

spring-mvc

5
推荐指数
1
解决办法
8282
查看次数

Spring MVC 3 - @ResponseBody方法如何呈现JSTLView?

我已经在一个Controller中映射了我的一个方法,以通过@ResponseBody返回JSON对象.

@RequestMapping("/{module}/get/{docId}")
public @ResponseBody Map<String, ? extends Object> get(@PathVariable String module,
        @PathVariable String docId) {
    Criteria criteria = new Criteria("_id", docId);
    return genericDAO.getUniqueEntity(module, true, criteria);
}
Run Code Online (Sandbox Code Playgroud)

但是,它将我重定向到JSTLView.比如,如果{module}是product并且{docId}是2,那么在控制台中我发现:

名为'xxx'的DispatcherServlet处理[/ xxx/product/get/2]的POST请求渲染视图[org.springframework.web.servlet.view.JstlView:name'product/get/2'; 名为"xxx"的DispatcherServlet中的URL [/WEB-INF/views/jsp/product/get/2.jsp]]

怎么会发生这种情况?在同一个Controller中,我有另一种类似于此的方法,但运行正常:

@RequestMapping("/{module}/list")
public @ResponseBody Map<String, ? extends Object> list(@PathVariable String module,
        @RequestParam MultiValueMap<String, String> params,
        @RequestParam(value = "page", required = false) Integer pageNumber,
        @RequestParam(value = "rows", required = false) Integer recordPerPage) {
...

    return genericDAO.list(module, criterias, orders, pageNumber, recordPerPage);
}
Run Code Online (Sandbox Code Playgroud)

上面的do返回正确,为我提供了我需要的对象列表.有谁帮我解开谜团?

java spring spring-mvc

4
推荐指数
1
解决办法
5091
查看次数

标签 统计

spring-mvc ×2

java ×1

spring ×1