第一步:前端发送一个请求
测试页面传值
第二步:后端使用modelAndView处理
我们可以看到,这里返回到了另外一个jsp界面,并且往里面存了一个值,这实际上是把值存到了request域中
@RequestMapping("/valuetrantest")
public ModelAndView test10(){
System.out.println("valuetrantest");
ModelAndView modelAndView = new ModelAndView();
modelAndView.addObject("name","蒲胤臻");
modelAndView.setViewName("resoult.jsp");
return modelAndView;
}
第一步:前端发送一个请求
测试model
第二步:后端使用model处理(这里同样是存到了request域当中)
@RequestMapping("/modeltest")
public String test11(Model model){
System.out.println("modeltest");
model.addAttribute("name","小明");
ModelAndView modelAndView = new ModelAndView();
return "resoult.jsp";
}
model中的方法介绍:
model.addAttribute("name","小明");
这里就是直接村的user这个对象,他的类型应该是User,这个时候,存进去的对象的键值为user(首字母小写)
User user = new User();
user.setUser_name("hello");
model.addAttribute(user);
这个注解是贴到类上面的,他的作用是,将model中名为name的属性转存一份到session域中
这个注解也有两个属性
value:通过指定key将model数据放到session域当中
types:把指定类型的模型数据放到session域当中
@SessionAttributes(types = String.class)
例如这样,就把string类型的所有属性都存到了session中
与第三种不一样,第三种是往session存数据,而这个则是取数据,在那里取数据内,我们看下面
@RequestMapping("/modeltest2")
public String test12(Model model,@SessionAttribute("name") String name){
System.out.println(name+"这是从session取出来的");
return "resoult.jsp";
}
看,我们把这个注解放在了controller方法的形参的位置上,执行这个方法的时候,他就会判断session域中,是否存在一个key为name的属性,如果有,就会把他绑定到后面的name这个形参上。并且在这个方法中可以直接使用这个数据