Make Spring insist json in a easy way

在网上看了一些spring 支持json的方法,大致有两类:
一种是继承Controller.这种方法对于multi controller不方便。
一种是继承View.这种方法更麻烦,还需要对配置文件进行配置。
下面提供一个我一直用的,很简单方便。



/**
* Spring json callback class
*
* @Author jander.sy@163.com
*/
public abstract class JsonCallback {
public void doInController(HttpServletRequest request,HttpServletResponse response){
response.setContentType("application/json;charset=utf-8");
PrintWriter writer = null;
try {
writer = response.getWriter();
String jsonString=null;
try {
jsonString=this.createJson(request);
} catch (Exception e) {
e.printStackTrace();
StringBuffer sb=new StringBuffer("{'result':'error','exception':{'message':'");
sb.append(e.getMessage());
sb.append("','stackTrace':'");
for(StackTraceElement st:e.getStackTrace()){
sb.append("at ");
sb.append(st.toString());
sb.append("\n");
}
sb.append("'}");
sb.append("'}");
jsonString=sb.toString();
}
writer.println(jsonString);
} catch (IOException ex1) {
ex1.printStackTrace();
} finally {
writer.close();
}
}

/*
* sub class do with business in this method.
*/
protected abstract String createJson(HttpServletRequest request);
}



这里是用法:

@RequestMapping("/json.htm")
public void jsonMethod(HttpServletRequest request,HttpServletResponse response) {
new JsonCallback() {
protected String createJson(HttpServletRequest request) {
return "{'name':'hello json'}";
}
}.doInController(request, response);
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值