六、Spring MVC之返回数据
前面几篇文章重点说明了一下怎么从前台传递参数到目标方法,还没有说怎么把结果返回给前台。本篇来讲述一下spring mvc怎么返回结果数据。
从使用形式上看,有以下几种方式:ModelAndView、Map、Model,这几种方式都可以返回数据到前台,本质上来看都是通过map的形式返回数据的。本系列文章着重于使用,深层次的原因,感兴趣的同志可以去调适源代码,这里只是结合使用方式,做简单的样例和分析。
1、ModelAndView的使用
/***方法的返回值可以是ModelAndView类型,它可以包含视图和模型信息*springmvc会把模型信息放入到request域对象中,可以跟踪源码调试*这个类org.springframework.web.servlet.view.AbstractView*这个方法exposeModelAsRequestAttributes*@return*/@RequestMapping("/testModelAndView")publicModelAndViewtestModelAndView(){ModelAndViewmodelAndView=newModelAndView("success");modelAndView.addObject("name","JackuseModelAndView");returnmodelAndView;}
2、Map的使用
/***使用map返回数据,实际上是实例化了一个*org.springframework.validation.support.BindingAwareModelMap*@parammap*@return*/@RequestMapping("/testMap")publicStringtestMap(Map<String,Object>map){System.out.println(map.getClass().getName());map.put("name","JackuseMap");return"success";}
3、Model的使用,本质上与map一样
/***使用model和使用map一样,都是实例化了一个*org.springframework.validation.support.BindingAwareModelMap*@parammodel*@return*/@RequestMapping("/testModel")publicStringtestModel(Modelmodel){System.out.println(model.getClass().getName());model.addAttribute("name","JackuseModel");return"success";}
4、SessionAttributes的使用,可以把数据存放到session域中去,有两个属性,value和types,value执行需要放到会话中的属性的属性名,types指定需要放到会话中的属性的类型。
在类上添加注解:
@SessionAttributes(value={"user"},types={String.class})
目标方法的定义
/***注解SessionAttribute可以通过属性名指定需要放到会话中的属性,实际上通过value属性*还可以通过types指定哪些类型的属性需要放到会话中去*但是该注解只能用于类上*@parammap*@return*/@RequestMapping("/testSessionAttributes")publicStringtestSessionAttributes(Map<String,Object>map){Useruser=newUser();user.setAge(15);user.setUserName("lxy");map.put("user",user);map.put("name","jackinsessionAttribute");return"success";}
项目源代码:
https://git.oschina.net/acesdream/spring-mvc
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。