我正在开发一个Spring Boot应用程序。在html视图中,我对一个RestController进行ajax调用,它返回一个自定义实体列表:
@Controller
public class MyController {
@ResponseBody
@JsonView(View.MyView.class)
public List<CustomEntity> getEntities() {
...
}
}
这工作正常,我按照预期得到以下结构:
{
"id": "1",
"name": "Test1"
},
{
"id": "2",
"name": "Test2"
}
在视图中,我想将它与Dynatable一起使用。这就是我的问题。我需要以下结构:
{
"records": [
{
"id": "1",
"name": "Test1"
},
{
"id": "2",
"name": "Test2"
}
],
"queryRecordCount": 2,
"totalRecordCount": 2
}
有没有办法使用基于模板的jackson(或任何其他框架)生成JSOn视图,所以我可以使用Dynatable的数据,如果是的话,怎么做?
提前致谢,
斯蒂芬
答案 0 :(得分:2)
您可以创建一个为您执行此操作的包装器...
class DyntableResponse<T> {
private List<T> records;
public List<T> getRecords() { return records; }
public void setRecords(final List<T> records) { this.records = records; }
public int getQueryRecordCount() { return records.size(); }
public int getTotalRecordCount() { return records.size(); }
}
然后从RestController中返回...
@Controller
public class MyController {
@ResponseBody
@JsonView(View.MyView.class)
public DyntableResponse<CustomEntity> getEntities() {
final DyntableResponse<CustomEntity> resp = new DyntableResponse<>();
resp.setRecords(...); // Your finder here.
return resp;
}
}
这是未经验证的,但应该接近。