springmvc学习(三)

我们知道,,很多时候我们在业务方法可能会有返回数据,常常是一些对象,那么我们怎么把模型数据输出到我们需要它显示的页面上呢?通常 我们都把模型数据放在域对象里,一般都是在request域里面。那么在这里springmvc提供了几种途径来输出模型数据:

1.ModelAndView:简单理解来说,它只作为返回值,包括视图信息+模型数据。springmvc会把modelandview的model中的数据放入到request域对象中。


2.Map及Model:作为参数或返回值。


3.@sessionAttributes:我们把所要返回的信息暂存到HttpSession中


4.@ModelAttributes:


那么我们首先来看看ModelAndView:


modelAndView有



在index.jsp中写一个超链接

<a href="testModelAndView">TestModelAndView</a>


在控制器中写这样的一个方法:

@RequestMapping("/testModelAndView")
public ModelAndView testModelAndVIew(){
ModelAndView mav=new ModelAndView("success");
mav.addObject("name", "name:hxl");
System.out.println(mav);
return mav;

}

那我们现在来看看结果:





这里我们选择的ModelAndView的其中一种method,其实它还有很多方法,可以查阅资料,这里我只展示常用的三种:


除此之外,我们还需要注意的一点是ModelAndView有七个构造方法,在构建ModelAndView对象的时候,我们可以根据返回值的类型来做合适的选择,下面分析一下


1.无参构造参数ModelAndView()当你只有一个模型属性要返回时,可采用这种构造器,然后在相应的视图中可以使用el表达式读出模型数据。


 public ModelAndView login(){

ModelAndView mav=new ModelAndView();

mav.setViewName("success");//返回的文件名,即返回jsp的名字

mav.addObject("time",new Date);

 }


2.ModelAndView(String viewName):不用modelandview的setViewName方法而是直接在形参中

3.ModelAndView(String viewName, Map model) 


4.ModelAndView(String viewName,String modelName,object modelObject)

这一种构造方法直接把返回的文件名写在方法的形参中,比前俩种都更加简洁

 public ModelAndView login(){

ModelAndView mav=new ModelAndView("success","time",new Date());

        return mav;

 }



5.ModelAndView(Object view):这种一般都是没有模型数据暴露时,方便的构造函数


6.ModelAndView(Object view, Map model) 给出一个view对戏和一个模型,创建一个新的modelandview


7.ModelAndView(Object view, String modelName, Object modelObject) 方便的构造函数来取一个模型对象



猜你喜欢

转载自blog.csdn.net/qq_34800258/article/details/78629682