@Responsebody注解

@RequestBody

作用:

i) 该注解用于读取Request请求的body部分数据,使用系统默认配置的HttpMessageConverter进行解析,然后把相应的数据绑定到要返回的对象上;

ii) 再把HttpMessageConverter返回的对象数据绑定到 controller中方法的参数上。

使用时机:

A) GET、POST方式提时, 根据request header Content-Type的值来判断:

  • application/x-www-form-urlencoded, 可选(即非必须,因为这种情况的数据@RequestParam, @ModelAttribute也可以处理,当然@RequestBody也能处理);
  • multipart/form-data, 不能处理(即使用@RequestBody不能处理这种格式的数据);
  • 其他格式, 必须(其他格式包括application/json, application/xml等。这些格式的数据,必须使用@RequestBody来处理);

B) PUT方式提交时, 根据request header Content-Type的值来判断:

  • application/x-www-form-urlencoded, 必须;
  • multipart/form-data, 不能处理;
  • 其他格式, 必须;

说明:request的body部分的数据编码格式由header部分的Content-Type指定;

@ResponseBody

作用:

该注解用于将Controller的方法返回的对象,通过适当的HttpMessageConverter转换为指定格式后,写入到Response对象的body数据区。

使用时机:

返回的数据不是html标签的页面,而是其他某种格式的数据时(如json、xml等)使用;

controller层对应栗子:

@Controller
@RequestMapping("system/user")
public class UserCntroller {

    @Resource(name="UserService")
    private UserService userService;
    @RequestMapping(value = "login" , method = RequestMethod.POST)
    @ResponseBody
    public int login(HttpServletRequest request,String account,String password){
        boolean loginResult;
        account = account.trim();
        password = password.trim();
        int flag =userService.login(account,password);
        if(flag == 1){
            System.out.println("sss");
            return 1;
        }else{
            return 0;
        }
    }
}

js对应栗子:

$.ajax({
            type:"POST",
            url:"system/user/login.do",
            data:‘account=‘+account+‘&password=‘+password,
            dataType:"json",
            async:true,
            success:function(data){
                if(data==1){
                    location.href="index.html";
                }
                if(data==0){
                    alert("输入信息有误!!!");
                }
            },
时间: 2024-12-26 18:25:33

@Responsebody注解的相关文章

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中使用@RequestBody和@ResponseBody注解处理json时,报出HTTP Status 415的解决方案

我在使用SpringMVC的@RequestBody和@ResponseBody注解处理JSON数据的时候,总是出现415的错误,说是不支持所提交数据格式,我在页面中使用了JQuery的AJAX来发出JSON数据给服务器: $.ajax({ type:'post', url:'${pageContext.request.contextPath }/requestJSON.action', contentType :'application/json;charset=utf-8', //数据是JS

@RequestBody, @ResponseBody 注解详解(转)

引言: 接上一篇文章讲述处理@RequestMapping的方法参数绑定之后,详细介绍下@RequestBody.@ResponseBody的具体用法和使用时机:同时对曾经看的一篇文章中讲述的某些部分进行澄清 (文章地址:http://www.byywee.com/page/M0/S702/702424.html). 简介: @RequestBody 作用: i) 该注解用于读取Request请求的body部分数据,使用系统默认配置的HttpMessageConverter进行解析,然后把相应的

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

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

@responseBody注解的使用

1. @responseBody注解的作用是将controller的方法返回的对象通过适当的转换器转换为指定的格式之后,写入到response对象的body区,通常用来返回JSON数据或者是XML 数据,需要注意的呢,在使用此注解之后不会再走试图处理器,而是直接将数据写入到输入流中,他的效果等同于通过response对象输出指定格式的数据. 2. @RequestMapping("/login") @ResponseBody public User login(User user){

@RequestBody 和@ResponseBody 注解详解

简介: @RequestBody 作用: i) 该注解用于读取Request请求的body部分数据,使用系统默认配置的HttpMessageConverter进行解析,然后把相应的数据绑定到要返回的对象上: ii) 再把HttpMessageConverter返回的对象数据绑定到 controller中方法的参数上. 使用时机: A) GET.POST方式提时, 根据request header Content-Type的值来判断: application/x-www-form-urlencod

Spring MVC @ResponseBody注解返回值中文乱码问题

在Spring MVC 的Controller中使用@ResponseBody注解向客户端返回数据时,如果没有特殊设置则中文将显示为乱码,此时需要在Spring-MVC.xml配置文件中加入如下代码 <!-- 避免IE在ajax请求时,返回json出现下载 --> <bean id="jacksonMessageConverter" class="org.springframework.http.converter.json.MappingJacksonHt

@ResponseBody注解与JSON

MappingJacksonHttpMessageConverter 调用了 objectMapper.writeValue(OutputStream stream, Object)方法,使用@ResponseBody注解返回的对象就传入Object参数内. [注意]若返回的对象为已经格式化好的json串时,不使用@RequestBody注解,而应该这样处理: 1.response.setContentType("application/json; charset=UTF-8"); 2

关于@responsebody注解的说明

@responsebody表示该方法的返回结果直接写入HTTP response body中 @responsebody注解一般在异步获取数据时使用,在springMVC框架时,使用@RequestMapping后,返回值通常解析为跳转路径,加上@responsebody后返回结果不会被解析为跳转路径,而是直接写入HTTP response body中.比如异步获取json数据,加上@responsebody后,会直接返回json数据.

@RequestBody和@ResponseBody注解的区别

@ResponseBody 注解表示该方法返回的结果直接写入Http响应正文,一般在异步获得数据时使用:在使用@RequestMapping后,返回值通常被解析为跳转路径,加上@ResponseBody后返回值不会被解析为跳转路径,而是直接写入HTTP响应正文中.例如,异步获得Json数据,加上@ResponseBody后  直接可以返回Json数据. @RequestBody注解将Http请求正文插入方法中,使用合适的HttpMessageCoverter将请求体写入某一个对象. 1 @Req