springmvc,spring,hibernate整合-json

本文介绍如何在SpringMVC应用中利用@ResponseBody注解简化JSON数据的返回过程。通过对比两种方法,一种是手动操作HttpServletResponse对象,另一种是在控制器方法上使用@ResponseBody注解,展示了后者更简洁高效的特点。此外,还提供了必要的配置步骤,包括启用注解支持及引入JSON解析库。

在之前的例子中,在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

转载于:https://my.oschina.net/u/914897/blog/480484

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值