美文网首页
springmvc 04 模型视图(ModelAndView)

springmvc 04 模型视图(ModelAndView)

作者: 小小机器人 | 来源:发表于2016-10-19 14:28 被阅读122次

被@RequestMapping注解修饰的方法最终于都会返回一个ModelAndView对象;
该对象携带视图和数据

@RequestMapping修饰的方法可以返回的类型

void
String
Map
ModelAndMap

@RequestMapping修饰void返回值的方法

<a href="springmvc/testModelAndViewVoid">testModelAndViewVoid</a><br><br>
    @RequestMapping("/testModelAndViewVoid")
    public void testModelAndViewVoid(){
        /* 返回值为void时
         * view:前端页面请求的路径+InternalResourceViewResolver
         * 添加的前缀和后缀:如"WEB-INF/views/springmvc/testModelAndViewVoid.jsp"
         * 
         * model: Map或ModelAndView*/
    }

@RequestMapping修饰Object返回值的方法

<a href="springmvc/testModelAndViewObject">testModelAndViewObject</a><br><br>
    @RequestMapping("/testModelAndViewObject")
    public Object testModelAndViewObject(){
        /* 返回值是一个对象类型时
         * view:前端页面请求的路径+InternalResourceViewResolver
         * 添加的前缀和后缀:如"WEB-INF/views/springmvc/testModelAndViewObject.jsp
         * 
         * model:Object(同时也会被添加到request域中);
         * */
        return new Object();
    }

@RequestMapping修饰Map返回值的方法

<a href="springmvc/testModelAndViewMap">testModelAndViewMap</a><br><br>
    /**SpringMVC在调用方法前会创建一个隐藏的模型对象作为模型数据在存储容器。
     * 如果方法的入参 为Map或Model类型,SpringMVC会将隐藏的模型的引用传递给这些入参。
     * 在该方法中我们可以往访问到该模型中的所有数据也可以往模型中添加数据*/
    @RequestMapping("/testModelAndViewMap")
    public Map<String,Object> testModelAndViewMap(Map<String,Object> map){
        /* 返回值是Map类型时
         * view:前端页面请求的路径+InternalResourceViewResolver
         * 添加的前缀和后缀:如"WEB-INF/views/springmvc/testModelAndViewMap.jsp
         * 
         * model:Map(同时也会被添加到request域中);
         * */
        map.put("map-obj", new Object());
        return map;
    }

@RequestMapping修饰String返回值的方法

<a href="springmvc/testModelAndViewString">testModelAndViewString</a><br><br>
    @RequestMapping("/testModelAndViewString")
    public String testModelAndViewString(Map<String,Object> map){
        /* 返回值是Map类型时
         * view:'String'+InternalResourceViewResolver
         * 添加的前缀和后缀:如"WEB-INF/views/springmvc/'String'.jsp
         * 
         * model:Map/ModelAndView(同时也会被添加到request域中);
         * */
        map.put("string_obj", new Object());
        return "testModelAndView";
    }
testModelAndViewString:${requestScope.string_obj}<br><br>

@RequestMapping修饰ModelAndView返回值的方法

    <a href="springmvc/testModelAndView">testModelAndView</a><br><br>
    @RequestMapping("/testModelAndView")
    public ModelAndView testModelAndView(){
        /* 返回值是Map类型时
         * view:前端页面请求的路径+InternalResourceViewResolver
         * 添加的前缀和后缀:如"WEB-INF/views/springmvc/testModelAndViewMap.jsp
         * 
         * model:ModelAndView(同时也会被添加到request域中);
         * */
        ModelAndView modelView = new ModelAndView("testModelAndView");
        modelView.addObject("modelAndView_obj", new Object());
        return modelView;
    }
}

    testModelAndView:${requestScope.modelAndView_obj}<br><br>

@SessionAttributes
spring允许我们有选择地指定 ModelMap 中的哪些属性需要转存到 session 中;
注意:@SessionAttributes只有用来修饰类,不能修饰方法

@SessionAttributes(value={"user"},types={String.class})
/*这指明了:
 * modelMap中添加的属性中如果key=="uesr"的会被添加到session中
 * modelMap中添加的属性中如果其类型为String类型会被添加到session中*/
public class Handler 
<a href="springmvc/testSessionAttributes">testSessionAttributes</a>
    @RequestMapping("/testSessionAttributes")
    public String testSessionAttributes(Map<String,Object> map){
        map.put("user",new User("Davis","123",22,null));
        map.put("username", "Smith");
        return SUCCESS;
    }
    request->user:${requestScope.user}<br>
    session->user:${sessionScope.user}<br>
    request->username:${requestScope.username}<br>
    session->username:${sessionScope.username}<br>

相关文章

  • springmvc 04 模型视图(ModelAndView)

    被@RequestMapping注解修饰的方法最终于都会返回一个ModelAndView对象;该对象携带视图和数据...

  • 处理模型数据

    ModelAndView 处理方法返回值类型为ModelAndView时,则其即包含视图信息,也包含模型数据信息。...

  • SpringMVC学习笔记 | SpringMVC中处理模型数据

    处理模型数据 SpringMVC提供了以下几种途径输出模型数据: ModelAndView处理方法返回值类型为Mo...

  • SpringMVC(四)处理模型数据

    一、SpringMVC提供了以下几种途径输出模型数据: ModelAndView: 处理方法返回值类型为Model...

  • 数据模型

    ModelAndView来定义视图类型,也用它来加载数据模型。数据绑定的类BindAwareModelMap 间...

  • SpringMVC处理模型数据——ModelAndView

    如果跳转时需要带数据:视图、模型,那么可以使用ModelAndView,自动将对象放入request域中。 一个例...

  • 处理模型数据

    SpringMVC提供了四种途径输出模型数据 1.ModelAndView 处理方法返回值类型是ModelAndV...

  • SpringMVC的笔记

    SpringMVC的笔记 MVC M 代表 模型(Model)模型就是数据,如:dao,bean V 代表 视图(...

  • SpringMVC之结果跳转方式

    五、结果跳转方式 目录:ModelAndView、ServletAPI、SpringMVC 1.ModelAndV...

  • ModelAndView

    当控制器处理完请求时,通常会将包含视图名称或视图对象以及一些模型属性的ModelAndView对象返回到Dispa...

网友评论

      本文标题:springmvc 04 模型视图(ModelAndView)

      本文链接:https://www.haomeiwen.com/subject/bmhxuttx.html