1. 程式人生 > 實用技巧 >SpringMvc第一篇【資料響應】

SpringMvc第一篇【資料響應】

資料響應方式

package com.example.demo.controller;

import com.example.demo.domain.User;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;

import javax.servlet.http.HttpServletResponse;

@Controller
public class IndexController {

    // 頁面跳轉,根據spring-mvcweb.xml的配置,跳轉到/jsp/index.jsp頁面
    @RequestMapping("/index0")
    public String index(){
        return "index";
    }

    // 頁面跳轉,跳轉到/jsp/index.jsp頁面,jsp可以用EL表示式取出username的值
    @RequestMapping("/index1")
    public ModelAndView index1(ModelAndView modelAndView){
        modelAndView.addObject("username","張三1");
        modelAndView.setViewName("index");
        return modelAndView;
    }

    // 頁面跳轉,跳轉到/jsp/index.jsp頁面,jsp可以用EL表示式取出username的值
    @RequestMapping("/index2")
    public String index2(Model model){
        model.addAttribute("username","張三2");
        return "index";
    }

    // 回寫資料,頁面輸出張三3,使用註解@ResponseBody
    @RequestMapping("/index3")
    @ResponseBody
    public String index3(){
        return "張三3";
    }

    // 回寫資料,使用json格式轉換器,匯入 com.fasterxml.jackson.core jar包
    @RequestMapping("/index4")
    @ResponseBody
    public String index8() throws Exception {
        User user = new User();
        user.setUsername("張三4");
        user.setAge("20");
        ObjectMapper objectMapper = new ObjectMapper();
        return objectMapper.writeValueAsString(user);
    }

    // 回寫資料,根據spring-mvcweb.xml配置檔案中的配置的處理器介面卡器進行json轉換
    @RequestMapping("/index5")
    @ResponseBody
    public User index4(){
        User user = new User();
        user.setUsername("張三5");
        user.setAge("20");
        return user;
    }

    // 回寫資料,spring-mvcweb.xml開啟mvc註解驅動配置
    @RequestMapping("/index6")
    @ResponseBody
    public User index9(){
        User user = new User();
        user.setUsername("張三6");
        user.setAge("20");
        return user;
    }

    // 回寫資料,用Servlet的方式
    @RequestMapping("/index7")
    public void index4(HttpServletResponse httpServletResponse) throws Exception{
        httpServletResponse.setHeader("Content-type", "text/html;charset=UTF-8");
        httpServletResponse.getWriter().println("張三7");
    }
}
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
                           http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
                           http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd">

    <!--開啟mvc註解驅動-->
    <mvc:annotation-driven/>

    <context:component-scan base-package="com.example.demo"/>

    <bean id="internalResourceViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/jsp/"/>
        <property name="suffix" value=".jsp"/>
    </bean>

    <!--配置處理器介面卡器-->
    <bean id="mappingHandlerAdapter"
          class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
        <property name="messageConverters">
            <list>
                <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"/>
            </list>
        </property>
    </bean>
</beans>