一、使用@Controller 注解的处理器的方法,默认参数值如下:
这些类型只要写在方法参数中就可以使用了。
- HttpServletRequest 对象
- HttpServletResponse 对象
- HttpSession 对象
- Model/ModelMap 对象
- Map<String,Object>对象
注意:Model,Map,ModelMap都使用的是request请求作用域,意味着只能是请求转发后,页面才可以得到值,重定向不会携带request请求域的数据。
二、案例:
@Controller
public class ParamAction {
@RequestMapping("/param")
public String param(HttpServletRequest request,
HttpServletResponse response,
HttpSession session,
Model model,
ModelMap modelMap,
Map map){
//Map ,Model,ModelMap,request都使用请求作用域进行传值,
//所以必须使用请求转发的方式进行跳转,否则丢失数据
Student stu = new Student("张三",22);
request.setAttribute("requestStu",stu);//存数据
session.setAttribute("sessionStu",stu);
modelMap.addAttribute("modelMapStu",stu);
model.addAttribute("modelStu",stu);
map.put("mapStu",stu);
return "main"; //切记请求转发跳
// return "redirect:/admin/main.jsp";//会丢失数据
}
}