1
我有一個ViewModel
,把json
標註上一些領域根據this post of spring.io象下面這樣:有沒有什麼辦法把@JsonView放在Controller方法和QueryResult returnType上?
public class SurveyViewModel{
@JsonView(View.Summary.class)
private Long id;
@JsonView(View.Summary.class)
private String title;
private String description;
private String endDate;
//Here is getters & setters
}
當我檢索我的REST Controller
數據,如果我的方法的返回類型爲List
,JSON,結果是OK:
@RequestMapping(value = "/getAllGrid", method = RequestMethod.GET)
@JsonView(View.Summary.class)
@ResponseBody
public List<SurveyViewModel> getAll{
return ModelMapper.mapList(iSurveyService.getAll(), SurveyViewModel.class);
}
但是,當我在我的結果&這種方法的變更返回類型適用分頁QueryResult
,JSON,結果是空的:
@RequestMapping(value = "/getAllGrid", method = RequestMethod.GET)
@JsonView(View.Summary.class)
@ResponseBody
public QueryResult<SurveyViewModel> search(String order, int pageNumber, int pageSize) {
return ModelMapper.mapQueryResult(iSurveyService.getAllGrid(new SearchOption("", order, pageNumber, pageSize)), SurveyViewModel.class);
}
當我申請尋呼我與上述方法結果,pageNumber, totalRecords & pageSize
添加到我的JSON結果和原始數據添加到entityList
作爲內JSON對象,這是我的QueryResult
JSON格式而不申請@JsonView
:
{
"pageNumber" : 0,
"totalRecords" : 1,
"pageSize" : 10,
"entityList" : [{
"id" : 1,
"title" : "survey1",
"description" : "...",
"endDate" : "2017/01/18",
},{
"id" : 2,
"title" : "survey2",
"description" : "...",
"endDate" : "2016/11/18",
}]
}
現在我的問題是,有沒有什麼辦法把@JsonView
控制器方法與QueryResult
returnType?