账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    springMVC 使用注解@ResponseBody 不能返回JSON数据
    51
    0

    控制器中代码

    @RequestMapping(value = "/listArea",method = RequestMethod.GET)
        @ResponseBody
        private Map<String,Object> listArea(){
            Map<String,Object> modelMap = new HashMap<>();
    
            List<Area> list = areaService.getAreaList();
            modelMap.put("rows", list);
            modelMap.put("total", list.size());
            return modelMap;
        }

    xml中的使用了这个
    <mvc:annotation-driven/>

    pom.xml引入下列依赖

            <dependency>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-core</artifactId>
                <version>2.9.8</version>
            </dependency>
            <dependency>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-annotations</artifactId>
                <version>2.9.0</version>
            </dependency>
            <dependency>
                <groupId>javax.servlet</groupId>
                <artifactId>javax.servlet-api</artifactId>
                <version>3.1.0</version>
            </dependency>

    访问接口时报错

    WARN org.springframework.web.servlet.mvc.support.DefaultHandlerExceptionResolver - Resolved [org.springframework.http.converter.HttpMessageNotWritableException: No converter found for return value of type: class java.util.HashMap]
    DEBUG org.springframework.web.servlet.DispatcherServlet - Completed 500 INTERNAL_SERVER_ERROR
    
    1
    打赏
    收藏
    点击回答
    您的回答被采纳后将获得:提问者悬赏的 10 元积分
        全部回答
    • 0
    • 蝶梦 普通会员 1楼

      Spring MVC 使用注解 @ResponseBody 不能返回 JSON 数据的原因主要有以下几个:

      1. Spring MVC 本身不支持返回 JSON 数据:Spring MVC 本身并不直接支持返回 JSON 数据,它主要用于处理 HTTP 请求和响应,而不包括处理 JSON 数据。如果你需要返回 JSON 数据,你需要在你的控制器中编写相应的代码来处理。

      2. JSON 数据格式不被 Spring MVC 支持:Spring MVC 的默认 JSON 格式是 application/json,但 JSON 数据需要符合一定的规范。如果你的数据格式不符合规范,Spring MVC 无法正确解析和处理。你可能需要自定义 JSON 格式,或者使用其他库(如 Jackson)来处理 JSON 数据。

      3. Spring MVC 的错误处理机制:Spring MVC 的错误处理机制会阻塞请求的处理,直到错误处理完成。如果你需要在请求处理完成后返回 JSON 数据,你可能需要在错误处理完成后再返回 JSON 数据。

      4. Spring MVC 的安全性考虑:Spring MVC 的安全性考虑可能会阻止你返回 JSON 数据。如果你的数据需要被安全地存储和处理,你可能需要使用其他库(如 JSON Web Token)来提供安全性。

      如果你需要返回 JSON 数据,你可以考虑使用其他库(如 Jackson)来处理 JSON 数据,并在你的控制器中编写相应的代码来处理。你也可以在你的服务层(如 Java)中编写代码来处理 JSON 数据,并返回给前端。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部