zoukankan      html  css  js  c++  java
  • SpringMVC进行json数据交互

    请求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>
    View Code

    注意:如果使用<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不用指定名称。

  • 相关阅读:
    AndroidStudio开发体温上报系统------问题总结
    AndroidStudio--app是如何运行的
    sqlite操作
    sqlite数据库
    Android Service
    echart自定义主题
    vue监听数组变化
    Django:数据库驱动安装
    pycharm链接mysql报错: Server returns invalid timezone. Go to 'Advanced' tab and set 'serverTimezone' property manually.
    Django2.2:UnicodeDecodeError: 'gbk' codec can't decode byte 0xa6 in position 9737: illegal multibyte sequence
  • 原文地址:https://www.cnblogs.com/ustc-anmin/p/10494668.html
Copyright © 2011-2022 走看看