java - 如何在requestMapping下自由的返回数据?
本文介绍了java - 如何在requestMapping下自由的返回数据?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
现有这样的代码:
@RequestMapping("/firstapi")
public List<Model> firstApi(String key,String style,String type){
if(aboutKey.equal(key)){
List<Model> models = aboutModel.queryModels(style, type);
return models;
}
return null;
}
我希望能够在key判断错的时候返回自定义json。
将返回值从List换成Object,肯定是不行的,因为是一组对象。改成List<Object>似乎也不是很好吧?
考虑把返回类型改为ModelAndView
,然后根据逻辑转发,错误就到一个url下,用于返回错误值;Ok的话就到下一个url,直接传入style和type
@RequestMapping("/ok")
public List<Model> firstApi(String style,String type){
List<Model> models = aboutModel.queryModels(style, type);
return models;
}
但觉得有安全隐患,求各位高手教教我正确的姿势。
刚学不久..认为modelAndView可以的大大能否贴个示例代码,百度了半天楞是没看懂..
解决方案
这里可以自定义一个ApiResult类作为返回值的载体,
public class ApiResult<T> implements Serializable {
private int status; //返回状态,0标示正确返回,-1表示错误返回,
private String errmsg; //返回的错误信息
private T data; //返回的数据集合
/**
* get,set方法,相关的静态方法
*/
}
@RequestMapping("/firstapi")
@ResponseBody
public ApiResult firstApi(String key,String style,String type){
if(aboutKey.equal(key)){
List<Model> models = aboutModel.queryModels(style, type);
return ApiResult.succ(models);
}
return ApiResult.fail("错误原因");
}
{
"status": 0,
"message": "成功",
"data": {
...
}
}
{
"status": -1,
"message": "失败描述",
"data": {
...
}
}
这篇关于java - 如何在requestMapping下自由的返回数据?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文