SpringMVC中的ResponseBody和RequestBody介绍

1ResponseBody 和 RequestBody

1简介

@ResponseBody把后台pojo转换为json对象,返回到页面

@RequestBody接受前台json数据,把json数据自动封装javaBean

2案例

导包

添加json转换器

<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
        <!--配置一个json的转换器,告诉springmvc使用jaskson来转换json-->
        <property name="messageConverters">
            <bean class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"></bean>
        </property>
    </bean>

写一个jsp页面

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>注册</title>
    <script src="${pageContext.request.contextPath}/js/jquery-1.8.3.js"></script>
    <script>
        function register() {

            //表单提交
            var url = ‘${pageContext.request.contextPath}/stu/save.do‘;
            var name = $(‘#name‘).val();
            var sex = $(‘#sex‘).val();
            var jsonObj = {name:name,sex:sex}

            var parameters = JSON.stringify(jsonObj);

            console.log(jsonObj);
            console.log(parameters);
            $.ajax({
                type:‘post‘,
                url:url,
                contentType:‘application/json;charset=utf-8‘,
                data:parameters,
                success:function (respData) {
                    console.log(respData)
                }

            })
        }

    </script>
</head>
<body>
<%--name = oyb & sex = male = {"name":"oyb","sex":"male"}--%>
<form action="${pageContext.request.contextPath}/stu/save.do" method="post">
    用户名:<input type="text" name="name" id="name"><br>

    性别:<input type="text" name="sex" id="sex"><br>

    <input type="button" value="提交" onclick="register()">

</form>

</form>
</body>
</html>

写一个StudentController

package oyb.Controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import oyb.model.Student;

@Controller
@RequestMapping("/stu")
public class StudentController {

    @RequestMapping("/toReg")
    public  String toReg(  Student stu){
        System.out.println(stu);
        return "stu/register";
    }

    @RequestMapping("/save")
    /**
     * @RequestBody:把json数据转成模型对象
     *@ResponseBody 返回json数据,把对象转成json字符串返回客户端
     */
    public  @ResponseBody
    Student save(@RequestBody Student stu){
        System.out.println(stu);

        return stu;
    }

}

测试

原文地址:https://www.cnblogs.com/ouyangbo/p/10658397.html

时间: 2024-10-25 13:49:48

SpringMVC中的ResponseBody和RequestBody介绍的相关文章

SpringMVC中使用@ResponseBody注解返回值,Ajax取得中文乱码解决方法

Spring使用AnnotationMethodHandlerAdapter的handleResponseBody方法, AnnotationMethodHandlerAdapter使用request header中"Accept"的值和messageConverter支持的MediaType进行匹配,然后会用"Accept"的第一个值写入 response的"Content-Type".一般的请求都是通过浏览器进行的,request heade

SpringMVC中通过@ResponseBody返回对象,Js中调用@ResponseBody返回值,统计剩余评论字数的js,@RequestParam默认值,@PathVariable的用法

1.SpringMVC中通过@ResponseBody返回对象,作为JQuery中的ajax返回值 package com.kuman.cartoon.controller; import java.util.Map; import javax.servlet.http.HttpServletRequest; import org.apache.commons.io.filefilter.FalseFileFilter; import org.slf4j.Logger; import org.s

SpringMVC 中使用 @ResponseBody 返回Json时,需要手动添加jackson依赖

No converter found for return value of type: class java.util.HashMapSpringMVC 中使用 @ResponseBody 返回Json时,需要手动添加jackson依赖!Maven添加: <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-core</artifactId>

springMvc注解之@ResponseBody和@RequestBody

简介 springmvc对json的前后台传输做了很好封装,避免了重复编码的过程,下面来看看常用的@ResponseBody和@RequestBody注解 添加依赖 springmvc对json的处理依赖jackson <dependency> <groupId>org.codehaus.jackson</groupId> <artifactId>jackson-core-asl</artifactId> <version>1.9.1

SpringMVC中使用@ResponseBody注解标注业务方法,将业务方法的返回值做成json输出给页面

导包: 除了一些spring的包之外,还需要jackson-annotations.jar , jackson-core.jar , jackson-databind.jar 这三个包 开启@ResponseBody注解: 在 spring-mvc.xml 中通过<mvc:annotation-driven />开启@ResponseBody注解 使用@ResponseBody标注业务方法 package com.loger.controller; import java.util.Array

SpringMVC @ResponseBody和@RequestBody使用

@ResponseBody用法 作用: 该注解用于将Controller的方法返回的对象,根据HTTP Request Header的Accept的内容,通过适当的HttpMessageConverter转换为指定格式后,写入到Response对象的body数据区. 使用时机: 返回的数据不是html标签的页面,而是其他某种格式的数据时(如json.xml等)使用. 配置返回JSON和XML数据 添加jackson依赖 <dependency> <groupId>com.faste

SpringMVC中@Controller和@RequestMapping用法

一.简介 在SpringMVC 中,控制器Controller 负责处理由DispatcherServlet 分发的请求,它把用户请求的数据经过业务处理层处理之后封装成一个Model ,然后再把该Model 返回给对应的View 进行展示.在SpringMVC 中提供了一个非常简便的定义Controller 的方法,你无需继承特定的类或实现特定的接口,只需使用@Controller 标记一个类是Controller ,然后使用@RequestMapping 和@RequestParam 等一些注

springMVC中使用注解@ResponseBody,@RequestBody传递json数据

在SpringMVC中,可以使用@RequestBody和@ResponseBody两个注解,分别完成请求报文到对象和对象到响应报文的转换. [email protected] 该注解用于将Controller的方法返回的对象,通过适当的HttpMessageConverter转换为指定格式后,写入到Response对象的body数据区. 即可以将返回的对象(带有数据的javabean的集合List或Map)转换成JSON. [email protected] 该注解用于读取Request请求的

SpringMVC中出现&quot; 400 Bad Request &quot;错误(用@ResponseBody处理ajax传过来的json数据转成bean)的解决方法

最近angularjs post到后台 400一头雾水 没有任何错误. 最后发现好文,感谢作者 SpringMVC中出现" 400 Bad Request "错误(用@ResponseBody处理ajax传过来的json数据转成bean)的解决方法 今天开发过程中,在SpringMVC中的Action中处理前台ajax请求传过来的json数据直接转成对应的实体类时出错:400 Bad Request,后台也不报错,400指的的是请求无效(请求有语法问题或者不能满足请求),调试了好长时间