[Revisar SSM Framework Series] 7 - Processamento de Dados SpringMVC (Resposta de Dados)

Crie o hábito de escrever juntos! Este é o 7º dia da minha participação no "Nuggets Daily New Plan · April Update Challenge", clique para ver os detalhes do evento .

resposta de dados

Os métodos de resposta de dados no SpringMVC incluem principalmente dados de salto de página e write-back.

Salto de página retornando uma string

Primeiro, configure o prefixo e o sufixo do resolvedor de visualização em spring-mvc.xml.

<bean id="internalResourceViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="prefix" value="/WEB-INF/views/"/>
    <property name="suffix" value=".jsp"/>
</bean>
复制代码

E todas as páginas jsp atrás de nós são colocadas no caminho de visualizações.

Usando o método de retorno de string para conseguir o salto de página, a string retornada será emendada com o sufixo do analisador de visão e depois saltada. insira a descrição da imagem aquiteste:

  1. Crie success.jsp em visualizações
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>string</title>
</head>
<body>
通过字符串跳转成功
</body>
</html>

复制代码
  1. Inicie o Tomcat, visite http://localhost:8080/test e o salto será bem-sucedido.

insira a descrição da imagem aqui

Realize o salto de página retornando o objeto ModelAndView

Você pode criar um objeto ModelAndView primeiro e, em seguida, injetar o nome da página jsp no objeto ModelAndView.

    @RequestMapping("/test2")
    public ModelAndView test2(){
        ModelAndView modelAndView = new ModelAndView();
        modelAndView.setViewName("success2");

        return modelAndView;
    }
复制代码

teste:

  1. Crie success2.jsp em visualizações
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>string</title>
</head>
<body>
通过modelAndView跳转成功
</body>
</html>

复制代码
  1. Inicie o Tomcat, visite http://localhost:8080/test2 e o salto é bem-sucedido.

insira a descrição da imagem aquiAlém do método acima de criar objetos ModelAndView no conteúdo do método, o Spring também fornece outra maneira de pular para ModelAndView.

Você também pode injetar um nome de página jsp dentro do método passando um parâmetro ModelAndView no método.

    @RequestMapping("/test3")
    public ModelAndView test3(ModelAndView modelAndView){
        modelAndView.addObject("msg","modelAndView中传入的message");
        modelAndView.setViewName("success3");

        return modelAndView;
    }
复制代码

Escrever dados do tipo string

Nota 1:response.getWriter().println()

    @RequestMapping("/test4")
    public void test4(HttpServletResponse response) throws IOException {
        response.getWriter().println("re Write String data");
    }
复制代码

insira a descrição da imagem aqui Método 2: anotação @ResponseBody A estrutura SpringMVC é informada pela anotação @ResponseBody que a string retornada pelo método não é um salto, mas é retornada diretamente no corpo da resposta http.

    @RequestMapping("/test5")
    @ResponseBody
    public String test5(){
        return "re Write String data";
    }
复制代码

Write back de dados de objeto ou tipo de coleção

Ao gravar de volta dados de tipo de objeto ou coleção, precisamos usar SpringMVC para nos ajudar a converter e gravar de volta a string json do objeto ou coleção, configurar parâmetros de conversão de mensagem para o adaptador do processador e especificar o uso de jackson para conversão de objeto ou coleção .

  1. Introduzir o pacote de dependências Jackson
<!--jackson-->
<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>
复制代码
  1. Coloque spring-mvc.xml
<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>
复制代码
  1. teste do controlador
    @RequestMapping("/test6")
    @ResponseBody
    public User test6(){
        User user = new User();
        user.setId(1000);
        user.setUsername("testName");
        user.setPassword("testPassword");

        return user;
    }
复制代码

insira a descrição da imagem aquiA conversão de formato de dados de configuração acima é mais problemática, podemos usar a seguinte configuração, o que pode simplificar bastante a configuração.

<!--mvc的注解驱动-->
<mvc:annotation-driven/>
复制代码

Use mvc:annotation-driven para carregar automaticamente RequestMappingHandlerMapping (mapeador de manipulação) e RequestMappingHandlerAdapter (adaptador de manipulação), você pode usar mvc:annotation-driven no arquivo de configuração Spring-xml.xml para substituir a configuração de processadores e adaptadores de anotação. Ao mesmo tempo, usar mvc:annotation-driven camada inferior padrão integrará jackson para converter a string de objetos ou coleções no formato json.

Acho que você gosta

Origin juejin.im/post/7085147520896073764
Recomendado
Clasificación