SpringMVC回写数据方式方法

举报
执久呀 发表于 2022/10/22 21:14:58 2022/10/22
【摘要】 ​目录回写数据1、直接返回字符串将字符串转成json格式回传到客户端2、直接返回对象或集合      使用SpringMVC自动将对象或集合转化为json格式 注解方式优化转化json mvc命名空间回写数据1、直接返回字符串Web基础截断,客户端访问服务器端,如果想直接回写字符串作为响应题返回的话,只需要使用response.getWrite().print("KCandZH")即可,所以...

目录

回写数据

1、直接返回字符串

将字符串转成json格式回传到客户端

2、直接返回对象或集合      

使用SpringMVC自动将对象或集合转化为json格式

 注解方式优化转化json

 mvc命名空间




回写数据

1、直接返回字符串

Web基础截断,客户端访问服务器端,如果想直接回写字符串作为响应题返回的话,只需要使用response.getWrite().print("KCandZH")即可,所以在Controller中想直接回写字符串,可以直接在方法中写入response。

方法1:通过SpringMVC框架注入的response对象,使用response.getWrite().print("hello")回写数据,此时不需要视图跳转,业务方法返回值为void

//配置类,使用注解把这个类放到容器中
@Controller
@RequestMapping(value="user")
public class userController {
    @RequestMapping("/quick6")
    public void save6(HttpServletResponse response) throws IOException {
        response.getWriter().print("hello itcase");

    }
}

编辑

 ②将需要回写的字符串直接返回,但需要通过@ResponseBody注解告知SpringMVC框架,方法返回的字符串不是跳转某个视图,而是直接在http响应体重返回。(加上则不会进行前后缀拼接)

//配置类,使用注解把这个类放到容器中
@Controller
@RequestMapping(value="user")
  @ResponseBody//告诉SpringMVC框架不进行视图跳转,而是直接进行数据响应
public class userController {
    @RequestMapping("/quick7")
    public String  save7(HttpServletResponse response) throws IOException {
        return "hello itcase";

    }
}

编辑

将字符串转成json格式回传到客户端

user类下

package com.pojo;

public class User {
    private int age;
    private String username;

    public User() {

    }
    public void setAge(int age) {
        this.age = age;
    }

    public void setName(String username) {
        this.username = username;
    }
}

userController类下

//配置类,使用注解把这个类放到容器中
@Controller
@RequestMapping(value="user")
    public class userController {
        @RequestMapping("/quick9")
        @ResponseBody
        public String save9() throws JsonProcessingException {
            User user=new User();
            user.setAge(30);
            user.setName("lisi");
        //使用json的转换工具将对象转换成json格式字符串再返回
            ObjectMapper objectMapper=new ObjectMapper();
            String json = objectMapper.writeValueAsString(user);
            return json;
        }
}

      要使用json转换工具,还得导入依赖

<!-- 导入json相关依赖       -->
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-core</artifactId>
            <version>2.9.0</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>2.9.0</version>
        </dependency>

        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-annotations</artifactId>
            <version>2.9.0</version>
        </dependency>

  运行结果

编辑

2、直接返回对象或集合      

使用SpringMVC自动将对象或集合转化为json格式

通过SpringMVC帮助我们对对象或集合进行json字符串的转换并回写,为处理器适配器配置消息转换参数是,指定使用jackson进行对象或集合的转换,因此需要在spring-mvc.xml中进行这样配置

配置spring-mvc.xml中处理器映射器

<!--配置处理器映射器 (将指定的对象或集合转为json格式)   -->
    <bean             class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
        <property name="messageConverters">
            <list>
                <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"/>
            </list>
        </property>
    </bean>

   在userController类中                                                                                                             


//配置类,使用注解把这个类放到容器中
@Controller

@RequestMapping(value="user")
    public class userController {

    @RequestMapping("/quick10")
    @ResponseBody
    //配置完成处理器映射器后,SpringMVC会将USer转化为json格式
    public User save10() throws JsonProcessingException {
        User user=new User();
        user.setAge(32);
        user.setName("lisi2");

        return user;
    }
}

运行结果

编辑

 注解方式优化转化json

在方法上添加@ResponseBody就可以返回json格式的字符串,但是这样配置比较麻烦,配置的代码比较多,因此,我们可以使用mvc的注解驱动代替上述配置。

<!--mvc的注解驱动-->
<mvc:annotation-driven/>

 、

在SpringMVC的各个组件中,处理器映射器、处理器适配器、视图解析器称为SpringMVC的三大组件。使用<mvc:annotation-driven>自动加载RequestMappingHandlerMapping(处理映射器)和RequestMappingHandlerAdapter(处理适配器),可用在Spring-xml.xml配置文件中使用<mvc:annotation-driven>替代注解处理器和适配器的配置。
同时使用<mvcannotation-driven>默认底层就会集成jackson进行对象或集合的json格式字符串的转换

 mvc命名空间

因为使用了mvc命名空间,所以得导入mvc

<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:mvc="http://www.springframework.org/schema/mvc"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
                      
                            http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd">

在spring-mvc.xml配置文件中

<!--    配置注解驱动-->
    <mvc:annotation-driven/>

编辑

 这样就完成了注解配置

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。