SpringMVC,接受、处理Json,fastjson解析json,用Postman4发送json数据

这个博客用的demo是接着我的上一篇博客(SpringMVC的 get,post参数请求及重定向)  感兴趣的朋友可以去看看~

 要用fastjson  要引入:
fastjson-1.1.41jar包

SpringMVC  结合alibaba的fastjson   把对象转json输出
1.配置spring-mvc.xml:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xsi:schemaLocation="http://www.springframework.org/schema/mvc
       http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd
       http://www.springframework.org/schema/context
       http://www.springframework.org/schema/context/spring-context-4.0.xsd
       http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans.xsd">

 
        <!--加载解析json的组件(fastjson)   配置消息转换器-->
    <mvc:annotation-driven>
        <mvc:message-converters>
            <bean id="fastJsonHttpMessageConverter" class="com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter">
                <property name="supportedMediaTypes">
                    <list>
                        <!--这里顺序不能反,一定要先写text/html  不然ie下会出现下载提示-->
                        <value>text/html;charset=UTF-8</value>
                        <value>application/json;charset=UTF-8</value>
                    </list>
                </property>
            </bean>
        </mvc:message-converters>
    </mvc:annotation-driven>


  <!--注意这里的顺序  一定要加载解析json的组件先加载  再开启springmvc的注解驱动  否则会报错,编译器也不会提示错误,很蛋疼-->
    <!--开启springmvc的注解驱动-->
    <mvc:annotation-driven/>
    <!--配置包扫描-->
    <context:component-scan base-package="com.dengweiquan.**" />


    <!--配置viewResolver(视图解析器)-->
    <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <!--getrequestdispature的时候要填的前缀  和后准都自动填好  注意斜号很关键 漏填个斜号都会错-->
        <property name="prefix" value="/WEB-INF/view/"/>
        <property name="suffix" value=".jsp"/>
        <!--jsp要用到jstl-->
        <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
     </bean>

</beans>

2.修改UserController:
//打了@Controller  都归springMVC管
    //打了@Controller  是写请求路径的   假如请求路径里面是带user的   例如user/test.jsp  或者user/demo.jsp   这个请求就会分发到这个controller来处理
@Controller
@RequestMapping("user")
public class UserController {

    //@ResponseBody  意思返回体是调用了 spring-mvc.xml 里的<mvc:message-converters>处理返回数据  转json输出了
    @RequestMapping("/test")
    @ResponseBody
    public User  testUser()   {
        User user=new User();
        user.setId(12);
        user.setName("haha");
        return  user;
    }
    @RequestMapping("/demo")
    public String demoUser(){

        //返回userspringmvc自动帮你加好了前后缀  就是我们要去的user.jsp   在viewResolver哪里已经配置好了路径的前后缀
        return "demo";
    }
}
  输入网址 localhost:8080/user/test    页面上会显示json   {"id":12,"name":"haha"}

前端用PostMan4传来数据,并自动转为对象:
1.修改UserController

@Controller
@RequestMapping("user")
public class UserController {
    @RequestMapping("/test")
    public String  testUser(User user)   {
        return   "user";
    }
    @RequestMapping("/demo")
    public String demoUser(){

        //返回userspringmvc自动帮你加好了前后缀  就是我们要去的user.jsp   在viewResolver哪里已经配置好了路径的前后缀
        return "demo";
    }

}

2.先要用谷歌浏览器的组件 Postman4模拟发送get/post请求  请自行百度下载方法
注意postman4发送的post请求 可以通过request请求获得的数据格式是  Body里的x-www-form-urlencoded格式的
按send发送之后 debug就可以发现user对象已经封装好了  id为12  name为haha

前端用PostMan4传来json  然后自动转为对象:
1.postman4要设置 发送数据为json格式
选Body里的raw  然后设置Text为JSON(application/json)  然后自行写要传向后端的json
2.设置UserController
//打了@Controller  都归springMVC管
    //打了@Controller  是写请求路径的   假如请求路径里面是带user的   例如user/test.jsp  或者user/demo.jsp   这个请求就会分发到这个controller来处理
@Controller
@RequestMapping("user")
public class UserController {

    //假如是@RequestMapping("/test",method=RequestMethod.GET)  限制前端的请求,意思是前端只能发送GET请求
    //假如是@RequestMapping("/test",method=RequestMethod.POST)  意思是前端只能发送POST请求
    //要加上@RequestBody  才能json自动转对象
    @RequestMapping("/test")
    public String  testUser(@RequestBody User user)   {
        return   "user";
    }
    @RequestMapping("/demo")
    public String demoUser(){

        //返回userspringmvc自动帮你加好了前后缀  就是我们要去的user.jsp   在viewResolver哪里已经配置好了路径的前后缀
        return "demo";
    }
}
postman4发送json之后  debug发现user对象已经封装好了  id为12  name为haha








评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值