0.1处理器方法的参数
1.springmvc会按照请求参数名和POJO属性名进行自动匹配,自动为该对象填充属性值。支持级联属性。
2.servlet原生API作为参数
HttpServletRequest
HttpServletResponse
HttpSession
请求中所携带的请求参数:
逐个接收请求参数:形参名和请求参数名一致
对象参数接收:对象的属性名和请求参数名一致
0.2处理器方法的返回值
ModelAndView:包含视图信息,也包含模型数据信息,springmvc会把model中的数据放入到request域对象中。
//添加模型数据:
ModelAndView addObject(String attributeName,Object attributeValue)
ModelAndView addAllObject(Map<String,?> modelMap)
//设置视图:
void setView(View view)
void setViewName(String viewName)
String:表示视图
void:ajax响应,若处理器对请求处理后,无需跳转到其他任何资源,此时可以返回void
返回自定义类型对象:作为页面显示的数据出现的,响应ajax请求:
(1)加入处理json的工具库的依赖,springmvc默认使用的是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>
(2)在springmvc配置文件加入注解驱动<mvc:annotation-driven>,为了把结果对象转为json格式的数据。
(3)在处理器方法的上面加入@ResponseBody
因为浏览器默认使用"text/palin;charset=ISO-8859-1",导致中文会有乱码,所以要给@RequestMapping注解加入produces属性
@RequestMapping(value="/return.do",produces="text/palin;charset=utf-8")
0.3转发与重定向
forward:表示转发
redirect:表示重定向,重定向不能访问web-info下的资源
注意:转发与重定向都不和视图解析器一同工作。
1.处理器方法返回ModelAndView,实现转发forward
setViewName("forward:/WEB-INF/view/show.jsp"); //访问WEB-INF下的资源文件
setViewName("forward:/show.jsp"); //访问webapp下的资源文件
2.处理器方法返回ModelAndView,实现重定向redirect
public ModelAndView doWithRedirect(String name,Integer age){
ModelAndView mv=new ModelAndView();
mv.addObject("myname",name);
mv.addObject("myage",age);
mv.setViewName("redirect:/hello.jsp");
return mv;
}