0

我有班级用户:

public class User {
    private Integer id;
    private String name;
    .....
}

并有控制器方法:

@RequestMapping ...
@ResponseBody public List<User> loadAll(...) {
    List<User> users = ...;
    return users;
}

现在 json 看起来像:

[{"id":1,"name":"Michael"},{"id":2,"name":"Peter"},...]

一切正常,但我想添加分页。json 应该是这样的:

["users":[{"id":1,"name":"Michael"},{"id":2,"name":"Peter"},...],"totalCount":500 ]

我正在尝试找到进行此修改的最佳实践。

春季版:3.1.2.RELEASE

谢谢

PS.我是杰克逊的新手。我使用了 net.sf.json 但不想完全生成响应。

4

2 回答 2

1

您应该尝试使用HashMap. 像这样的东西:

@RequestMapping ...
@ResponseBody public Map<String, Object> loadAll(...) {

    Map<String, Object> response = new HashMap<String, Object>();

    List<User> users = ...;

    response.put("users", users);
    response.put("totalCount", 500);

    return response;
}
于 2013-07-26T18:24:43.720 回答
1

将用户列表包装在视图对象中,如下所示:

@RequestMapping(...)
公共 @ResponseBody 用户 loadAll() {
    整数总数 = ...;
    列表<用户> 列表 = ...;
    返回新用户(总数,列表);
}

...

最后一类用户{
    公共最终整数总数;
    公共最终列表<用户>用户;
    // ...
}
于 2013-07-26T20:07:51.680 回答