请求key/value、输出json。此方法在开发中比较常用。
在注解适配器中加入messageConverters
1 <!--注解适配器 --> 2 <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"> 3 <property name="messageConverters"> 4 <list> 5 <bean class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"></bean> 6 </list> 7 </property> 8 </bean>
注意:如果使用<mvc:annotation-driven /> 则不用定义上边的内容。
Controller方法:
1 package cn.itcast.ssm.controller; 2 3 import org.springframework.stereotype.Controller; 4 import org.springframework.web.bind.annotation.RequestBody; 5 import org.springframework.web.bind.annotation.RequestMapping; 6 import org.springframework.web.bind.annotation.ResponseBody; 7 8 import cn.itcast.ssm.po.ItemsCustom; 9 10 @Controller 11 public class JsonTest { 12 13 //请求json串(商品信息),输出json(商品信息) 14 //@RequestBody将请求的商品信息的json串转成itemsCustom对象 15 //@ResponseBody将itemsCustom转成json输出 16 @RequestMapping("/requestJson") 17 public @ResponseBody ItemsCustom requestJson(@RequestBody ItemsCustom itemsCustom){ 18 19 //@ResponseBody将itemsCustom转成json输出 20 return itemsCustom; 21 } 22 23 //请求key/value,输出json 24 @RequestMapping("/responseJson") 25 public @ResponseBody ItemsCustom responseJson(ItemsCustom itemsCustom){ 27 //@ResponseBody将itemsCustom转成json输出 28 return itemsCustom; 29 } 30 31 }
Restful的支持
示例:定义controller,进行url映射使用REST风格的url,将查询商品信息的id传入controller。输出json使用@ResponseBody将java对象输出json。
@RequestMapping(value="/ viewItems/{id}"):{×××}占位符,请求的URL可以是“/viewItems/1”或“/viewItems/2”,通过在方法中使用@PathVariable获取{×××}中的×××变量。
@PathVariable用于将请求URL中的模板变量映射到功能处理方法的参数上。
1 @RequestMapping("/viewItems/{id}") 2 public @ResponseBody ItemsCustom viewItems(@PathVariable("id") String id,Model model) throws Exception{ 3 //方法中使用@PathVariable获取useried的值,使用model传回页面 4 //调用 service查询商品信息 5 ItemsCustom itemsCustom = itemsService.findItemsById(id); 6 return itemsCustom; 7 }
tips:如果RequestMapping中表示为"/viewItems/{id}",id和形参名称一致,@PathVariable不用指定名称。