springmvc的数据响应方式
1、页面跳转
-
直接返回字符串进行页面跳转
@RequestMapping(path="/hello") public String hello(){ System.out.println("hello"); //默认返回的是jsp的文件名字 return "success"; }
<bean id ="internalResourceViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <!--能够找到资源路径--> <property name="prefix" value="/WEB-INF/pages/"></property> <!--能够找到资源路径下以什么为后缀名的文件--> <property name="suffix" value=".jsp"></property> </bean>
基于这两处可以得出转发的资源路径: /WEB-INF/pages/ success .jsp
- 转发:forward :/WEB-INF/pages/success.jsp
- 重定向:redirect:/index.jsp
-
通过ModelAndView对象返回
-
Model:作用封装数据(可以是bean,数组,字符串)
-
View:作用展示数据,设置名称直接返回
@RequestMapping(path="/modelAndView")
public ModelAndView returnModelAndView(){
ModelAndView modelAndView = new ModelAndView();
modelAndView.addObject("model","这是我controller返回给你的");
//该处为视图
modelAndView.setViewName("success");
//默认返回的是jsp的文件名字
return modelAndView;
}
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<h3>跳转1221212成功 ${model}</h3>
</body>
</html>
2、回写数据
-
直接返回字符串
@RequestMapping("returnString") @ResponseBody//不进行页面跳转直接视图返回 public String returnString(){ return "abc"; }
-
返回对象集合
一般我们都用json方式返回:
-
在springmvc中进行处理器适配器配置,在controller中需要用ResponseBody注解
<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>
-
在springmvc中用mvc:annotation-driven/配置
在 SpringMVC 的各个组件中,处理器映射器、处理器适配器、视图解析器称为 SpringMVC 的三大组件。用在Spring-xml.xml配置文件中使用<mvc:annotation-driven />
替代注解处理器和适配器的配置。自然在底层就可以集成jackson进行对象或集合的json格式字符串的转换
@RequestMapping(value="/quick10")
@ResponseBody
//期望SpringMVC自动将User转换成json格式的字符串
public User save10() throws IOException {
User user = new User();
user.setUsername("lisi2");
user.setAge(32);
return user;
}
<mvc:annotation-driven/>