1 @RequestBody
作用:
@RequestBody注解用於讀取http請求的內容(字符串),通過springmvc提供的HttpMessageConverter接口將讀到的內容轉換為json、xml等格式的數據並綁定到controller方法的參數上。
List.action?id=1&name=zhangsan&age=12
本例子應用:
@RequestBody注解實現接收http請求的json數據,將json數據轉換為java對象
2 @ResponseBody
作用:
該注解用於將Controller的方法返回的對象,通過HttpMessageConverter接口轉換為指定格式的數據如:json,xml等,通過Response響應給客戶端
本例子應用:
@ResponseBody注解實現將controller方法返回對象轉換為json響應給客戶端
3 環境配置
3.1 jar包准備
Springmvc默認用MappingJacksonHttpMessageConverter對json數據進行轉換,需要加入jackson的包,如下:
3.2 springmvc.xml文件中的配置
1) 如果配置文件中配置過注解驅動(<mvc:annotation-driven/>), 則無需多余配置
2) 如果沒有配置注解驅動, 則需如下配置(不推薦使用這種方式)
<!--注解適配器 -->
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
<property name="messageConverters">
<list>
<bean class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"></bean>
</list>
</property>
</bean>
4. Controller的編寫
@RequestMapping("/testJson.action")
@ResponseBody
public Items testJson (@RequestBody Items items) {
return items;
}
對應jsp頁面中js的編寫
function jsonTest () {
$.ajax({
type:"post",
url:"${pageContext.request.contextPath}/item/testJson.action",
contentType:"application/json;charset=utf-8",
data:'{"name":"測試商品","price":99.9}',
success:function (data) {
alert(data.name);
}
});
}