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. teste:
- Crie success.jsp em visualizações
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>string</title>
</head>
<body>
通过字符串跳转成功
</body>
</html>
复制代码
- Inicie o Tomcat, visite http://localhost:8080/test e o salto será bem-sucedido.
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:
- 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>
复制代码
- Inicie o Tomcat, visite http://localhost:8080/test2 e o salto é bem-sucedido.
Alé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");
}
复制代码
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 .
- 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>
复制代码
- 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>
复制代码
- teste do controlador
@RequestMapping("/test6")
@ResponseBody
public User test6(){
User user = new User();
user.setId(1000);
user.setUsername("testName");
user.setPassword("testPassword");
return user;
}
复制代码
A 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.