一、前端往后端传递数据(view -> controller)
方式一、
index.jsp:
<a href="handler/welcome2/testname">spring mvc welcome2</a>
servlet(controller层)端接收数据:
@RequestMapping(value="welcome2/{name}")
public String welcome2(@PathVariable("name") String name ,HttpServletRequest request ) {
request.setAttribute("name", name);
return "welcomeHi";
}
其实如果通过request对象去取值的话,有很多种方法getAttribute\getParameter等。
方式二、
jsp:
<form action="handler/testModelAndView" method="POST">
stuNo : <input name ="stuNo"></input><br/>
stuName : <input name ="stuName"></input><br/>
stuAge : <input name ="stuAge"></input><br/>
addr : <input name ="address.addr"></input><br/>
tel : <input name ="address.tel"></input><br/>
<input type="submit" value="testModelAndView"></input>
</form>
servlet:
@RequestMapping(value="testModelAndView")
public ModelAndView welcome4(Student student) {//Student 属性必须和form表单中的属性name值一致(支持级联属性,如Student中的address)
ModelAndView mv=new ModelAndView("welcome4");
mv.addObject("student",student);//相当于request.setAttribute("student",student);
return mv;
}
二、后端往前端传值(controller->view)
1、使用request将值放入requestScope中
如前面使用的request.setAttribute
2、ModelAndView:
@RequestMapping(value="testModelAndView")
public ModelAndView welcome4(Student student) {//Student 属性必须和form表单中的属性name值一致(支持级联属性,如Student中的address)
ModelAndView mv=new ModelAndView("welcome4");
mv.addObject("student",student);//相当于request.setAttribute("student",student);
return mv;
}
3、ModelMap
@RequestMapping(value="testModelMap")
public String welcome5(ModelMap mm,Student student) {//Student 属性必须和form表单中的属性name值一致(支持级联属性,如Student中的address)
mm.put("student",student);//相当于request.setAttribute("student",student);
return "welcome4";
}
4、Map
@RequestMapping(value="testMap")
public String welcome6(Map<String,Object> map,Student student) {//Student 属性必须和form表单中的属性name值一致(支持级联属性,如Student中的address)
map.put("student",student);//相当于request.setAttribute("student",student);
return "welcome4";
}
5、Model
@RequestMapping(value="testModel")
public String welcome7(Model model,Student student) {//Student 属性必须和form表单中的属性name值一致(支持级联属性,如Student中的address)
model.addAttribute("student",student);//相当于request.setAttribute("student",student);
return "welcome4";
}