【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>
在之前的例子中,在controller中返回jsons格式的数据是通过直接获取HttpServletResponse对象并调用write方法来返回json数据的,如下:
@RequestMapping("delUser")
public void delUser(String id, HttpServletResponse response) {
String result = "{\"result\":\"error\"}";
if (userService.delUser(id)) {
result = "{\"result\":\"success\"}";
}
response.setContentType("application/json");
try {
PrintWriter out = response.getWriter();
out.write(result);
} catch (IOException e) {
e.printStackTrace();
}
}
在springmvc中有一个方便的注解叫@ResponseBody可以非常方便的返回json格式的数据,只需要在返回json格式的数据的方法中加上这个注解即可:
@RequestMapping("delUser")
@ResponseBody
public Result delUser(String id, HttpServletResponse response) {
Result result = new Result();
result.setResult("error");
if (userService.delUser(id)) {
result.setResult("success");
}
return result;
}
其中Result类是返回数据的一个封装,springmvc会自动把对象转化成json格式的字符串返回到客户端。
Result类
/**
*
*/
package com.jason.sshIntegration.bean;
/**
* @author lenovo
*
*/
public class Result {
private String result;
public String getResult() {
return result;
}
public void setResult(String result) {
this.result = result;
}
}
使用@ResponseBody的前是提是需要在配置文件中打开注解
<!-- 开启注解 -->
<mvc:annotation-driven />
然后还需要引用json解析的jar包,在pom.xml文件中增加以下配置即可
<!-- json -->
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
<version>${jackson.version}</version>
</dependency>
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-core-asl</artifactId>
<version>${jackson.version}</version>
</dependency>
备注:
本例中涉及到的代码可以在我的github地址下载:https://github.com/zjordon/ssh-integration