Spring MVC Rest 返回值为空

 问题描述:

采用Spring Restful ,可以通过浏览器的地址栏URL正确访问后台且不报错误,但是前台总是获取不到数据,前台也是收到了后台的响应,就是没有数据。

具体如下:

采用 Spring Restful 对不同的格式,可以发送不同格式化的数据,比如Json、XML、HTML.....

对于配置文件如下:

参考 Spring MVC Rest 学习 一:http://my.oschina.net/heweipo/blog/337581

参考Spring MVC Rest 学习 二:http://my.oschina.net/heweipo/blog/340040

对于Controller的接口,一开始如下声明:

    @RequestMapping("/getMessage")
    public String getMessage(HttpServletRequest request , HttpServletResponse response , ModelMap model){
        model.put("message",new Message());    
        return null;
    }

在浏览器中请求,http:ip:port/server/uri/getMessage.json

结果是:这个方法可以访问到,因为我用断点试过了,但是返回值却是空的,本来理想的结果应该是返回一个Json格式的Message内容,然而却差强人意。具体原因不是很清楚,不过如下修改之后问题得到解决:

    @RequestMapping("/getMessage")
    public String getMessage(HttpServletRequest request, ModelMap model){
        model.put("message",new Message());    
        return null;
    }

 总结:

前后接口对比,发现就是多了一个 HttpServletResponse response 形参,结果却差强人意,不过问题总算解决了。

另外我也没有用@ResponsBody测试过,理论上来说应该也是可以的。

时间: 2024-08-13 05:22:41

Spring MVC Rest 返回值为空的相关文章

spring mvc ajax返回值乱码

加入如下配置: <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"> <property name="messageConverters"> <list> <bean class="org.springframework.http.converter.ByteArrayHtt

spring处理方法返回值的类型

spring mvc处理方法支持如下的返回方式:ModelAndView, Model, ModelMap, Map,View, String, void.下面将对具体的一一进行说明: ModeAndView: @RequestMapping("/show1") public ModelAndView show1(HttpServletRequest request, HttpServletResponse response) throws Exception { ModelAndVi

六、Spring MVC之返回数据

前面几篇文章重点说明了一下怎么从前台传递参数到目标方法,还没有说怎么把结果返回给前台.本篇来讲述一下spring mvc怎么返回结果数据. 从使用形式上看,有以下几种方式:ModelAndView.Map.Model,这几种方式都可以返回数据到前台,本质上来看都是通过map的形式返回数据的.本系列文章着重于使用,深层次的原因,感兴趣的同志可以去调适源代码,这里只是结合使用方式,做简单的样例和分析. 1.ModelAndView的使用 /**  * 方法的返回值可以是ModelAndView类型,

[Spring MVC] @ResponseBody返回结果乱码问题的解决

发现问题 在Controller类方法上加@ResponseBody,直接返回字符串,结果乱码. 如下所示: MockHttpServletResponse: Status = 200 Error message = null Headers = {Content-Type=[text/plain;charset=ISO-8859-1], Content-Length=[45]} Content type = text/plain;charset=ISO-8859-1 Body = { "Msg

MVC方法返回值数据

ModelAndView的作用以及用法 使用ModelAndView类用来存储处理完后的结果数据,以及显示该数据的视图.从名字上看ModelAndView中的Model代表模型,View代表视图,这个名字就很好地解释了该类的作用.业务处理器调用模型层处理完用户请求后,把结果数据存储在该类的model属性中,把要返回的视图信息存储在该类的view属性中,然后让该ModelAndView返回该Spring MVC框架.框架通过调用配置文件中定义的视图解析器,对该对象进行解析,最后把结果数据显示在指定

解决Spring MVC @ResponseBody返回中文字符串乱码问题

引起乱码原因为spring mvc使用的默认处理字符串编码为ISO-8859-1,具体参考org.springframework.http.converter.StringHttpMessageConverter类中public static final Charset DEFAULT_CHARSET = Charset.forName("ISO-8859-1"); 解决方法: 第一种方法: 对于需要返回字符串的方法添加注解,如下: @RequestMapping(value=&quo

ajax异步传输数据,return返回值为空

今天在项目中遇到了一个问题,就是在定义了一个函数drawHtml(),本意是想在函数运行结束后,返回拼接的字符串,可是函数运行结束后始终返回的是undefined 有BIG的代码: function drawHtml(){ var html =""; $.ajax({ type:'get', url:'http://localhost:63342/projectStudy/json/data.json', success:function(data){ var dataList = d

ASP.NET Core Mvc中空返回值的处理方式

原文地址:https://www.strathweb.com/2018/10/convert-null-valued-results-to-404-in-asp-net-core-mvc/ 作者: Filip W. 译者: Lamond Lu .NET Core MVC在如何返回操作结果方面非常灵活的. 你可以返回一个实现IActionResult接口的对象, 比如我们熟知的ViewResult, FileResult, ContentResult等. [HttpGet] public IAct

Spring MVC中返回JSON数据的几种方式

我们都知道Spring MVC 的Controller方法中默认可以返回ModeAndView 和String 类型,返回的这两种类型数据是被DispatcherServlet拿来给到视图解析器进行继续处理返回页面的,而不是直接返回给客户端的.有时候我们需要发请求后让服务端直接返回一些数据,不再经过DispatcherServlet,这个时候通常有两种方式: 1.使用@ResponseBody注解 该注解的作用是把方法返回结果转成json或xml格式并进行返回,不管要返回什么类型的数据,是Str