在网上看了一些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);
}
分享到:
相关推荐
影极INSIST系列耳机驱动程序是专为该品牌耳机设计的一款重要软件组件,它在音频体验中扮演着不可或缺的角色。驱动程序本质上是操作系统与硬件设备之间的桥梁,使得计算机能够识别并有效利用硬件设备的功能。在本例中...
Mongrel2 is also designed to be incredibly easy to automatically manage it as part of your infrastructure.Other web servers do some of these things, but they either do them in a bastardized way or ...
package victory; public class INSIST_01 { public static void main (String [] args){ System.out.print("Insist_victory"); } }
在使用 insist 时要注意它与相似表达 `stick to (doing) sth.` 和 `persist in (doing) sth.` 的区别: - `insist on (doing) sth.` 坚持某种做法、意见或主张。 - `stick to (doing) sth.` 坚持原则、计划、诺言等...
Spring Data JPA是Spring框架的一个模块,它简化了Java应用程序对数据库的操作,通过提供自动的repository接口实现。在处理复杂的查询需求时,Spring Data JPA的`Specifications`接口提供了动态构建查询的能力,允许...
Spring Data JPA是Spring框架的一个模块,用于简化Java Persistence API(JPA)的使用,它提供了与数据库交互的高级抽象。在Spring应用中整合Spring Data JPA,可以极大地提高开发效率,减少大量的DAO层代码。下面...
《Spring Boot整合Spring Data JPA深度解析》 在现代Java开发中,Spring Boot以其便捷的配置、快速的应用启动以及强大的生态系统赢得了广泛的认可。而在数据访问层,Spring Data JPA则是Spring框架提供的一种高效且...
interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a ...
In other cases, permission to use a particular library in non-free programs enables a greater number of people to use a large body of free software. For example, permission to use the GNU C Library ...
In other cases, permission to use a particular library in non-free programs enables a greater number of people to use a large body of free software. For example, permission to use the GNU C Library ...
32. His father came home to dinner every night, and ______ in his life Jack felt that they were a real family. A. for the first time B. firstly C. at first time D. at first 33. After the robbery, the ...
4)What's more, living in school can save them a great deal of time on the way between home and school everyday, so they would be able to concentrate more time and energy on their academic work....
insist用法和练习PPT学习教案.pptx
10. **介词短语辨析**:"in a way"意为"在某种程度上",适合表达"I must admit that it is a good thing in a way I did not get that post I applied for, though I was disappointed at the time.",即在某种程度...
The overwhelming majority of a software system’s lifespan is spent in use, not in design or implementation. So, why does conventional wisdom insist that software engineers focus primarily on the ...
a way to specify the local address for use when sending update packets. [RT #34811] "named-checkconf -z" now checks zones of type hint as well as master. [RT #35046] Update config.guess and ...
26. **adhere to** ( = abide by, conform to, comply with, cling to, insist on, persist in, observe, opinion, belief):坚持,遵守,表示对原则、信念或规则的忠诚。 27. **adjacent** ( = next to, close to)...
在IT行业中,Spring Boot是一个非常流行的微服务框架,它简化了Spring应用的初始搭建以及开发过程。而Redis则是一款高性能的键值数据存储系统,常用于缓存、消息队列等场景。本教程将深入探讨如何在Spring Boot项目...
分析:清除浮动大致有两种方案:clear、触发 BFC额外标签法: 在浮动元素平级的最后面添加额外元素,例如:<div class="clearfix"></d