SpringMVC的@RequestMapping注解只能将produces设置为text/html 5C

遇到了一个奇葩的问题。我想通过Controller返回JSON格式数据,代码如下:

 @RequestMapping(value="ajax",produces="application/json")
    public ResponseEntity<Message> service(HttpServletRequest request){
       //......
    }

这样在通过jQuery请求时,根本不进入方法,直接返回406错误。但通过浏览器调试工具可以看到Accept请求头确实是application/json。

后来改成了:

 @RequestMapping(value="ajax",produces="text/html")
    public ResponseEntity<Message> service(HttpServletRequest request){
       System.out.println(request.getHeader("Accept"));
    }

就能进入方法执行了!但是在方法内通过request.getHeader("Accept")输出的确实是application/json啊!

也就是说,浏览器发送的Accept请求头确实是application/json,但在与@RequestMapping匹配时SpringMVC认为Accept请求头是text/html,而且认为返回的响应内容也是text/html类型的!这难道是bug吗?

BTW,我使用的是Spring3.2.17,在网上查资料看到很多人要在配置文件中重新定义MappingJacksonHttpMessageConverter,在supportedMediaTypes中添加text/html,是不是就是这个原因?

3个回答

返回json时 在方法上加上注解 @Responsebody 要不一直会默认返回一个页面给前台

ziwozizhan
ziwozizhan 回复baij1230: 谢谢啦 只是看到的稍微早一点 :)
接近 3 年之前 回复
baij1230
baij1230 正解。你好快啊
接近 3 年之前 回复

加上注解 @Responsebody是返回一个字符串、要json可以自己去将要返回的数据转成json,也可以用MappingJacksonHttpMessageConverter

楼上@Responsebody都是正确答案,大多数情况我们只需要返回json格式的字符串而不需要返回json对象,所以加上@Responsebody就行了。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
模拟SpringMVC简单实现注解@RequestMapping
根据自己的简单模拟注解@RequestMapping的实现方式import java.lang.reflect.Method; import java.util.ArrayList; import java.util.HashMap; import java.util.Set; import org.springframework.core.LocalVariableTableParameterNa
SpringMVC学习笔记(二、Controller注解与RequestMapping注解)
@Controller:如果一个普通类被@Controller注解,则普通类变成一个servlet @RequestMapping:为当前方法配置虚拟路径和接受参数的类型 用法举例: @Controller public class LoginController { // value :为当前方法配置一个或多个对外访问的虚拟路径value = {&quot;/register.htm&quot;, &quot;a....
springMVC注解中之@RequestMapping注解及常用参数
package cn.hive.action;      import org.springframework.stereotype.Controller;   import org.springframework.web.bind.annotation.PathVariable;   import org.springframework.web.bind.annotation.Reque
produces在@requestMapping中的使用方式和作用
produces可能不算一个注解,因为什么呢,它是注解@requestMapping注解里面的属性项, 它的作用是指定返回值类型,不但可以设置返回值类型还可以设定返回值的字符编码; 还有一个属性与其对应,就是consumes: 指定处理请求的提交内容类型(Content-Type),例如application/json, text/html; 他们的使用方法如下: 一、produces的
SpringMVC使用注解@RequestMapping映射请求
SpringMVC通过使用@RequestMapping注解,实现指定控制器可以处理哪些URL请求。控制器的类定义及方法定义处都可以标注@RequestMapping: 类定义处:提供初步的请求映射信息。相对于WEB 应用的根目录。 方法定义处:提供进一步的细分映射信息。相对于类定义处的URL。若类定义处未标注@RequestMapping,则方法处标记的URL 相对于WEB 应用的根目录。  下面
springMVC ------RequestMapping注解到---实现请求参数的绑定
RequestMapping注解的作用是建立请求URL和处理方法之间的对应关系 RequestMapping注解可以作用在方法和类上 作用在类上:第一级的访问目录 作用在方法上:第二级的访问目录 细节:路径可以不编写 / 表示应用的根目录开始 细节:${ pageContext.request.contextPath }也可以省略不写,但是路径上不能写 / RequestMapping的属性 p...
(4)SpringMVC - RequestMapping注解的作用和属性
作用: 用于建立请求URL和处理请求方法之间的对应关系 客户端一定会发一个请求过来,那么后台一定要有一个方法去执行它。 把发送请求的这个地址路径跟这个方法建立一个映射关联 你发送这个请求,那我这个方法就执行。 那么RequestMapping 就是来建立两者之间的关系的 反过来理解一下:我们写了一个方法,那别人想请求这个方法怎么办? 我们需要加一个映射关联,再这个方法上加一个RequestMapp...
@RequestMapping中的produces的作用和使用方式
1.他的作用是指定返回值类型和返回值编码 2.consumes: 指定处理请求的提交内容类型(Content-Type),例如application/json, text/html; 一、produces的例子 produces第一种使用,返回json数据,下边的代码可以省略produces属性,因为我们已经使用了注解@responseBody就是返回值是json数据: @Control...
【笔记1】SpringMvc常用注解类-RequestMapping
RequestMapping 1.使用@controller进行注解 2.RequestMapping的属性 value:代表具体的请求路径。value="/login" method:请求数据的类型,只有对应的请求才会触发这个方法,如果没有这个属性表示任何类型的请求都可以触发。POST,PUT,GET,DELETE  consumes:指定请求提交内容的类型,也就是该方法接收内容的
springMVC请求注解@RequestMapping各个属性值
1、RequestMapping接口的源码如下,里面定义了七个属性 (1)@Target中有两个属性,分别为 ElementType.METHOD 和 ElementType.TYPE ,也就是说 @RequestMapping 可以在方法和类的声明中使用 (2)可以看到注解中的属性除了 name() 返回的字符串,其它的方法均返回数组,也就是可以定义多个属性值,例如 value()可以同时定...
springMvc返回乱码的 设置produces解决方案
@RequestMapping(value = "/itemcat/list", produces = MediaType.APPLICATION_JSON_VALUE + ";charset=utf-8")在requestMapping 中设置一个produces属性
SpringMVC 设置produces决定返回的数据格式
我通过ajax,请求rest服务接口,需要返回一个对象作为ajax结果,此时我可以设置: @RequestMapping(value = &quot;/query/{addrId}&quot;,method = RequestMethod.POST,produces =&quot;application/json;charset=utf-8&quot;) 当我需要一个string类型的信息作为ajax结果时候,可以设
SpringMVC报错404:提示找不到@RequestMapping注解设置的映射
![图片说明](https://img-ask.csdn.net/upload/201607/16/1468680734_664876.jpg)rn-----------------------------------------银当的分割线-----------------------------------------------rnrn![图片说明](https://img-ask.csdn.net/upload/201607/16/1468680743_564816.jpg)rn-----------------------------------------银当的分割线-----------------------------------------------rnrn![图片说明](https://img-ask.csdn.net/upload/201607/16/1468680753_384818.jpg)rn-----------------------------------------银当的分割线-----------------------------------------------rnrn![图片说明](https://img-ask.csdn.net/upload/201607/16/1468680907_707345.jpg)
produces、consumes在@RequestMapping中的使用方式和作用
produces : 指定返回值类型,不但可以设置返回值类型,还可以设定返回值的字符编码; @Controller   @RequestMapping(value = &quot;/pets/{petId}&quot;, produces=&quot;MediaType.APPLICATION_JSON_VALUE&quot;+&quot;;charset=utf-8&quot;)   @ResponseBody   public Pet getPet...
SpringMVC学习(1)--SpringMVC的第一个HelloWorld及@RequestMapping注解的基本使用
一、SpringMVC的第一个HelloWorld Spring MVC主要由DispatcherServlet、处理器映射、处理器(控制器)、视图解析器、视图组成。他的两个核心是: 处理器映射:选择使用哪个控制器来处理请求  视图解析器:选择结果应该如何渲染 1.导入基本所需jar包: 2.在Web.xml配置文件中配置SpringMVC <we
SpringMVC学习(六)——SpringMVC高级参数绑定与@RequestMapping注解
高级参数绑定现在进入SpringMVC高级参数绑定的学习,本文所有案例代码的编写均建立在前文SpringMVC学习(五)——SpringMVC的参数绑定的案例基础之上,因此希望读者能仔细阅读这篇文章。绑定数组现有这样一个需求:在商品列表页面选中多个商品,然后删除之。下面是我对该需求的分析:此功能要求商品列表页面中的每个商品前有一个checkbook(复选框),选中多个商品后点击删除按钮把商品id传递
Controller注解与RequestMapping
本课程讲解非常的详细,并且有一定的深度,学完后完全可以掌握springMVC4.x这个框架。
Spring MVC 入门指南(二):@RequestMapping用法详解
为什么80%的码农都做不了架构师?&gt;&gt;&gt; ...
RequestMapping注解支持的属性
属性–>类型–>是否必要–>说明 value–>String[]–>否–>用于将指定请求的实际地址映射到方法上 name–>String–>给映射地址指定一个别名 method–>RequestMethod[]–>映射指定请求的方法类型,包括get、post、head、trace、options、put、patch、delete conmues–String[]–>否–>指定
@RequestMapping注解用法详解
之前案例中我们就已经使用过@RequestMapping注解了,但还有一些细节我还没讲到,所以在此将详细讲讲@RequestMapping注解的使用。 @RequestMapping 通过@RequestMapping注解可以定义不同的处理器映射规则。主要定义在方法之上,Controller类也可以使用。 1)URL路径映射 @RequestMapping(&amp;quot;/xxx&amp;quot;) 或者 @Request...
@RequestMapping注解的参数详解下
Spring MVC是当前最优秀的MVC框架,这门课程是基于Spring5.0.6的SpringMVC框架来讲解的,本套视频几乎涵盖 SpringMVC 开发过程中所有的技术问题,学习本套视频后,你会真正理解 SpringMVC 的优雅和简洁,并使你具备开发 SpringMVC 企业级项目的能力!
RequestMapping注解中的属性
RequestMapping注解 一.RequestMapping注解的作用是建立请求URL和处理方法之间的对应关系 二. RequestMapping注解可以作用在方法和类上 1. 作用在类上:第一级的访问目录 2. 作用在方法上:第二级的访问目录 3. 细节:路径可以不编写 / 表示应用的根目录开始 4. 细节:${ pageContex...
@RequestMapping注解的参数详解上
Spring MVC是当前最优秀的MVC框架,这门课程是基于Spring5.0.6的SpringMVC框架来讲解的,本套视频几乎涵盖 SpringMVC 开发过程中所有的技术问题,学习本套视频后,你会真正理解 SpringMVC 的优雅和简洁,并使你具备开发 SpringMVC 企业级项目的能力!
@RequestMapping注解的参数详解中
Spring MVC是当前最优秀的MVC框架,这门课程是基于Spring5.0.6的SpringMVC框架来讲解的,本套视频几乎涵盖 SpringMVC 开发过程中所有的技术问题,学习本套视频后,你会真正理解 SpringMVC 的优雅和简洁,并使你具备开发 SpringMVC 企业级项目的能力!
@RequestMapping注解的使用
@RequestMapping注解的使用
@RequestMapping注解的参数
1、value 对应类或者方法的请求地址,相对于应用根目录eg:value="/account" 2、method 对应请求的操作类型,包含GET,HEAD,POST,PUT,PATCH,DELETE,OPTIONS,TRACE; eg:method = RequestMethod.GET 3、consumes 对应请求的提交数据类型即content-type . eg:consumes=
springmvc @RequestMapping() 相对路径
[img=https://img-bbs.csdn.net/upload/201506/24/1435141008_695398.png][/img]
@RequestMapping注解不起作用extjs
在数据载入时后台无任何反应,有高手指点下吗?url是"abcd"rnrn前端jsrn Main_store = Ext.create('Ext.data.Store', rn fields: ['MKEY', 'GSBH', 'DboID', 'ComName', 'LComName', 'EnName', 'KHMT', 'LBMC', 'ZHMC', 'YHZH', 'GSBH', 'KHYH', 'Addr', 'YCCL', 'area_id', 'area_name', 'LinkMen', 'PhoneNb', 'YMD', 'Tel', 'Fax', 'USER_ID', 'EMaill', 'Remark', 'EquipmentID', 'PhoneNb', 'Manager', 'USER_ID'],rn autoLoad: false,rn pageSize: 500,rn proxy: rn type: 'ajax',rn url: 'abcd',rn method: 'GET',rn headers: 'Content-type': 'application/json' ,rn reader: rn type: 'json',rn totalProperty: 'TotalCount',rn root: 'data'rn ,rn ,rnrn );rnrnrnapplicationContext.xml文件rnrnrnrn rn rn rn.....rnrnweb.xml:rnrnrnrn rn rn encodingFilterrn org.springframework.web.filter.CharacterEncodingFilterrn rn rn encodingrn gbkrn rn rn rn forceEncodingrn truern rn rn rn encodingFilterrn /*rn REQUESTrn FORWARDrn rn rn rn dispatcherServletrn rn org.springframework.web.servlet.DispatcherServletrn rn rn rn contextConfigLocationrn rn /WEB-INF/applicationContext.xmlrn rn rn 1rn rn rn rn dispatcherServletrn *.htmlrn rn rn dispatcherServletrn *.dorn rn rn forworld.jsprn rnrnrn后台javarnrnpackage com.jwy.cotroller;rnimport com.jwy.cs.pubclass;rnimport java.io.PrintWriter;rnimport java.util.ArrayList;rnimport java.util.HashMap;rnimport java.util.List;rnimport java.util.Map;rnrnimport javax.servlet.http.HttpServletRequest;rnimport javax.servlet.http.HttpServletResponse;rnrnimport org.springframework.stereotype.Controller;rnimport org.springframework.web.bind.annotation.RequestMapping;rnimport org.springframework.web.bind.annotation.RequestMethod;rnimport org.springframework.web.servlet.ModelAndView;rnimport org.springframework.web.servlet.mvc.multiaction.MultiActionController;rnrnimport com.jwy.cs.ICustomer;rnimport com.jwy.cs.customerinfo;rnrnrnrn/**rn * rn * @author Jingweiyu rn */rn@Controllerrnpublic class TOfcustomerControllerrn rnrnrnrnrn rn @RequestMapping(value="abcd",method=RequestMethod.GET)rn public String getData(HttpServletRequest request,HttpServletResponse response) throws Exceptionrn PrintWriter out = response.getWriter(); rn out.print(" ");rn out.close(); rn rn return "asadasdc";rn rnrnrnrn
text/html 注解怎么写
我现在使用的是注解 请问怎么把这个参数加到注解里。
springmvc之@RequestMapping的demo
springmvc之@RequestMapping的简单demo
胖哥学SpringMVC:RequestMapping注解之其它属性
@RequestMapping 个人建议重新练习一遍搭建的过程,如果感觉麻烦你可以直接复制上一个工程,但是需要修改pom.xml中的一点信息 &amp;lt;groupId&amp;gt;com.hanpang.springmvc&amp;lt;/groupId&amp;gt; &amp;lt;artifactId&amp;gt;springmvc-demo02&amp;lt;/artifactId&amp;gt; &amp;lt;version&amp;gt;0.0.1-S...
转:SpringMVC中@Controller和@RequestMapping用法和其他常用注解
包括ModelAttribute等传递参数 https://www.cnblogs.com/jpfss/p/8047628.html
胖哥学SpringMVC:RequestMapping注解之映射路径 上卷
@RequestMapping 个人建议重新练习一遍搭建的过程,如果感觉麻烦你可以直接复制上一个工程,但是需要修改pom.xml中的一点信息 &amp;lt;groupId&amp;gt;com.hanpang.springmvc&amp;lt;/groupId&amp;gt; &amp;lt;artifactId&amp;gt;springmvc-demo02&amp;lt;/artifactId&amp;gt; &amp;lt;version&amp;gt;0.0.1-S...
springMVC中,出现中文乱码的解决办法produces
springMVC中,出现中文乱码的解决办法produces   转载▼ 在最近的项目中,后台传输的json到页面接受时中文出现了乱码。 在controller层里,写了个列表的页面查询转成json传给jsp页面。jsp页面用easyui分页来接受数据,当展示数据时所有中文的都以乱码的形式出现。 于是,我先是对eclipse的设置做了检查、然后检查了所有的jsp页面的conten
SetFocus不能将一个text控件设置为焦点?
我在建立类向导里给我的Cedit注册了一个变量叫 m_edit,但是用m_edit.SetFocus(),好像得到的是标题栏的焦点,因为我紧接着用GetWindowText(temp),得到的temp的值是标题栏的值……rnrn或者有没有其他的方法,我就是想将m_edit设置为焦点,然后得到他的值……
二、@RequestMapping注解和参数的获取
1、@RequestMapping @RequestMapping(value="/testRequestMapping", method={RequestMethod.POST}, params = {"username=jack"}, headers = {"Accept"}) value和path的作用都是指定请求路径,当有注解后面只有一个参数的时候可以直接写路...
关于springmvc中使用注解的简单用法-@RequestMapping篇
springMVC分为三层,本篇主要关于controller层。 一般格式如下: @Controller2 1 public class 类名{ @RequestMapping(value="3") public ModelAndView 方法名(){ ModelAndView mav=new ModelAndView(); mav.addObject("返回的视图上的字段名"
springMVC的@RequestMapping注解放在类上后,跳转地址出现问题。
今天开始学springMVC,具体代码如下:[code=java]package com.mvc.first;rnrnimport org.springframework.stereotype.Controller;rnimport org.springframework.web.bind.annotation.RequestMapping;rnrn@RequestMapping("test")rn@Controllerrnpublic class First rnrn private static final String SUCCESS = "success";rn rn @RequestMapping("hello")rn public String exectue()rn System.out.println("hello world");rn return SUCCESS;rn rn rnrn[/code]rn解析器是这样的:rn[code=text]rn rn rn [/code]rn直接用a标签写test/hello访问rn然后问题来了:rn能打印hello worldrn但是跳转页面直接报错rntype Status reportrnrnmessage /springmvc/test/view/success.jsprnrndescription The requested resource is not available.rnrn好吧,也就是说跳转的时候加载类上面的注解直接给我要跳转的地址加上了。。。rn这怎么弄
springmvc关于@requestMapping和@requestParam的使用
springmvc关于@requestMapping和@requestParam的使用,详细代码,独立可用无需修改。
SpringMvc学习笔记(二)-RequestMapping专题
关于映射路径的定义方式(多路径,通配符,占位符传递数据),控制传递的参数,请求方式(get,post,delete,put,patch) 源码获取github 1.项目结构 2.读取自定义核心配置文件的名称和位置 web.xml &amp;amp;amp;lt;?xml version=&amp;amp;quot;1.0&amp;amp;quot; encoding=&amp;amp;quot;UTF-8&amp;amp;quot;?&amp;amp;amp;gt; &amp;am
相关热词 c# 标准差 计算 c#siki第五季 c#入门推荐书 c# 解码海康数据流 c# xml的遍历循环 c# 取 查看源码没有的 c#解决高并发 委托 c#日期转化为字符串 c# 显示问号 c# 字典对象池