SpringMVC——数据响应


简介

  SpringMVC数据响应分为:页面跳转和回写数据

页面跳转

  1.直接在方法映射上返回字符串

    @RequestMapping(value = "save")
    public String save(){
        System.out.println("find!");
        return "/jsp/success.jsp";
    }

  2, 通过ModelAndView对象。

    形参ModelAndView,SpringMVC会注入这个参数。

      调用这个参数

        setViewName(String viewName)

        setObject(String key ,Object obj)

        就可以设置ModelAndView

      返回ModelAndView即可使用

   作用:设置页面跳转地址,在scope中传入数据

   使用

    @RequestMapping(value = "save1")
    public ModelAndView save(ModelAndView modelAndView){
        modelAndView.setViewName("/jsp/success.jsp");
        modelAndView.addObject("userName","zs,zs");
        return modelAndView;
    }

  3. 也可以在参数内传HttpServletRequest request。SpringMVC一样会注入这个对象。

@RequestMapping("save2")
    public String save2(HttpServletRequest request){
        request.setAttribute("userName","cw,cw");
        return "/jsp/success.jsp";
    }

回写数据

  1.@ResponseBody:

    作用:让字符串作为响应返回。(不进行页面跳转,直接返回数据)

@RequestMapping("save3")
    @ResponseBody
    public String save3(){
        return "Hello!";
    }

    应用场景:直接回复json字符串

  2.jackson,对象转json库

  坐标:

<dependency>
  <groupId>com.fasterxml.jackson.coregroupId>
  <artifactId>jackson-coreartifactId>
  <version>2.9.0version>
dependency>
<dependency>
  <groupId>com.fasterxml.jackson.coregroupId>
  <artifactId>jackson-databindartifactId>
  <version>2.9.0version>
dependency>
<dependency>
  <groupId>com.jwebmp.jpms.jackson.coregroupId>
  <artifactId>jackson-annotationsartifactId>
  <version>0.67.0.16version>
dependency>

  ObjectMapping 

    方法 

     String writeValueAsString(Object obj)

      参数:

        Object obj:对象

      返回值 String

      返回值意义:将对象转为JSON格式字符粗

      作用:将对象转为JSON格式字符粗

  使用

    @RequestMapping("save4")
    @ResponseBody
    public String save4() throws JsonProcessingException {
        User user = new User();
        user.setUserName("cw");
        user.setAge(21);
        //json转换工具 jackson
        ObjectMapper objectMapper = new ObjectMapper();
        String str = objectMapper.writeValueAsString(user);
        return str;
    }

  3.使用springMVC内置对象转json的工具

    RequestMappingHandlerAdapter:处理器适配器

      SpringMVC.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>

或者使用:

  使用mvc命名空间上的标签,它会自动结合jackson

xmlns:mvc="http://www.springframework.org/schema/mvc"
http://www.springframework.org/schema/mvc  http://www.springframework.org/schema/mvc/spring-mvc.xsd

    <mvc:annotation-driven/>

 使用

@RequestMapping("save4")
    @ResponseBody
    public String save4() throws JsonProcessingException {
        User user = new User();
        user.setUserName("cw");
        user.setAge(21);
        //json转换工具 jackson
        ObjectMapper objectMapper = new ObjectMapper();
        String str = objectMapper.writeValueAsString(user);
        return str;
    }