Model、ModelMap、ModelAndView的使用和区别
1、model的使用
数据传递:model是通过addattribute方法向页面传递数据的;
数据获取:jsp页面可以通过el表达式或c标签库的方法获取数据;
return:return返回的是指定的页面路径;
1 /** 2 * model是每一次请求可以自动创建 3 * @param model 4 * @return 5 */ 6 @requestmapping("/test01") 7 public string test01(model model){ 8 model.addattribute("param_id", "01"); 9 model.addattribute("param_name", "spring-mvc"); 10 return "test"; 11 }
2、modelmap的使用
modelmap的使用与model相同,modelmap是一种特殊的model,一般来说,model可以接收各种类型的数据,如果接收的数据是list,那么这个时候model实际上是modelmap。
3、modelandview的使用
数据传递:modelandview通过addobject方法向页面传递数据;
数据获取:jsp页面可以通过el表达式或c标签库的方法获取数据(与model的获取方式相同);
return:return返回的是modelandview对象;
modelandview设置跳转地址有两个方式:
第一种:在new modelandview时添加地址参数,如:
modelandview mav = new modelandview("test");
第二种:使用modelandview的setviewname(string)方法去设置,如:
mav.setviewname("test");
1 /** 2 * modelandview需要我们自己创建 3 * 可以指定跳转地址 4 * @param model 5 * @return 6 */ 7 @requestmapping("/test02") 8 public modelandview test02(){ 9 //第一种方法:在创建modelandview对象时,指定跳转地址 10 modelandview mav = new modelandview("test"); 11 //第二种方法:用方法setviewname,指定跳转地址 12 // mav.setviewname("test"); 13 mav.addobject("param_id", "02"); 14 mav.addobject("param_name", "modelandview"); 15 return mav; 16 }
4、model与modelandview的区别
第一点:model只是用来传输数据的,并不会进行业务的寻址。modelandview 却是可以进行业务寻址的;所以model的返回值是url地址,而modelandview的返回值是modelandview对象;
第二点:model是每一次请求可以自动创建,但是modelandview 是需要我们自己去new的。所以使用model时controller的参数是model。
上一篇: PHP基础3--文件加载-错误处理
下一篇: Android精通教程V