【问题标题】:Receiving JSON from MVC Controller从 MVC 控制器接收 JSON
【发布时间】:2014-09-16 07:40:00
【问题描述】:

我在 jsp 视图中有一个 ng-table,它会向我的服务器发送每个“getData()”ajax 请求的选定参数(过滤、排序、页面和页面大小):

ngTableParams({
    page: 1,            // show first page
    count: 10,          // count per page
    filter: {
        name: 'Mike',       // initial filter
        age: '18'
    },
    sorting: {
        name: 'asc'     // initial sorting
    }
}

我想将此参数绑定到 Spring MVC 控制器中的 java 对象中,以便在服务器中构建动态查询。

1:阅读其他关于此建议的REST方法的问题,我认为我应该使用:GET比POST更好

2:ng-table 的 ngTableParams javascript 对象在其 Ajax 示例中使用了一个方法“url”:

ngTableparams.url = Object {page: "1", count: "10", filter[name]: "Mike", filter[age]: "24", sorting[name]: "asc"}

但我想在一个数组中接收所有过滤器参数,¿如何轻松解析这个 JSON requestParams?。

控制器:

    @RequestMapping(value = "/search", method = RequestMethod.GET, produces = "application/json")
public ResponseEntity<?> search(@RequestParam(required=true) List<String> filter,
                                @RequestParam int page, 
                                Locale locale) {

    return search(filter, page, locale, null);
}

谢谢!

【问题讨论】:

标签: json angularjs model-view-controller ngtable


【解决方案1】:

我不确定我是否理解正确。

但是要从你的控制器发送一个 json 对象,你可以这样做:

public ActionResult(int paramId, int something) {
 return Json(search(filter, page, locale, null), JsonRequestBehavior.AllowGet);
}

【讨论】:

  • 不,我只是想要相反,从控制器获取 json 并解析成 java 类。我想从:Object {filter[name]: "Mike", filter[age]: "24"} 到包含两对的 java.ArrayList 或 HashMap
猜你喜欢
  • 2023-03-19
  • 2019-07-21
  • 2015-11-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多