1. Salto de página
- Adelante, si hay un solucionador de vistas, escriba la ruta completa /pages/success.jsp
@RequestMapping("/save4")
public String save4(HttpServletRequest req) {
req.setAttribute("key", "value 4");
return "forward:/pages/success.jsp";
}
@RequestMapping(value = "/redirect")
public String testRedirect() {
return "redirect:/pages/success.jsp";
}
- Devolver el objeto ModelAndView
@RequestMapping(value = "/save1")
public ModelAndView save1() {
System.out.println("save running..");
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("success");
modelAndView.addObject("key", "i am value");
return modelAndView;
}
- ModelAndView como parámetro, el marco springmvc inyecta automáticamente
@RequestMapping("/save2")
public ModelAndView save2(ModelAndView modelAndView) {
modelAndView.setViewName("success");
modelAndView.addObject("key", "i am value 1");
return modelAndView;
}
- modelo como parámetro formal
@RequestMapping("/save3")
public String save3(Model model) {
model.addAttribute("key", "i am value 3");
return "success";
}
2. Reescribir datos @ResponseBody anotación
@ResponseBody注解简单介绍,用来返回字符串,对象。
1. @ResponseBody 告知spring mvc框架,该方法,不进行视图跳转,直接进行视图响应
2. 回写json,Jackson,(jackson-core, jackson-databind, jackson-annotations)
3. 回写对象,或者集合, 封装对象或者转换json的步骤,需要繁琐的配置。RequestMappingHandlerAdapter注入集合。。
4. 使用<mvc:annotation-driven/>自动集成转换json
@RequestMapping("/save5")
@ResponseBody
public String save5() {
return "hello world !";
}
- Devuelve la cadena json, usa Jackson, importa pom
@RequestMapping("/save6")
@ResponseBody
public String save6() {
User user = new User();
user.setName("jack");
user.setAge(18);
ObjectMapper objectMapper = new ObjectMapper();
String str = null;
try {
str = objectMapper.writeValueAsString(user);
} catch (JsonProcessingException e) {
e.printStackTrace();
}
return str;
}
- Configuración compleja a través de mvc o agregar unidad de anotación
@RequestMapping(value = "/save7")
@ResponseBody
public User save7() {
User user = new User();
user.setName("bitqian");
user.setAge(19);
return user;
}
- Inyección del mapeador del procesador en Jackson
<bean id="requestMappingHandlerAdapter"
class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
<property name="messageConverters">
<list>
<bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"/>
</list>
</property>
</bean>
- O mejor anotación impulsada en lugar de arriba
<mvc:annotation-driven/>