• SpringMvc:视图和视图解析器


          请求处理方法执行完成后,最终返回一个ModelAndView对象,对于返回String,View或ModelMap等类型的处理方法,SpringMvc也会在内部将它们装配成一个ModelAndView对象的,它包含了逻辑名和模型对象的视图。

          SpringMvc借助视图解析器(ViewResolver)得到最终的视图对象(View),最终的视图可能是JSP,也可能是Excel等各种表现形式的视图。对于最终采取何种视图对象对模型数据进行渲染,处理器并不关心,处理器的工作重点聚焦在生产模型数据的工作上,从而实现MVC的充分解耦。

          视图(View)的作用是渲染模型数据,将模型数据里的数据以某种形式呈现给客户,视图对象由视图解析器负责实例化,由于视图是无状态的,所以它们不会有线程安全的问题。

          SpringMvc为逻辑视图名的解析提供了不同的策略,可以在Spring WEB上下文中配置一种或多种解析策略,并指定它们的先后顺序,每一种映射策略对应一个具体的视图解析器实现类。视图解析器的作用比较单一:将逻辑视图解析为一个具体的视图对象。所有的视图解析器都必须实现ViewResolver接口。每个视图解析器都实现了Ordered接口并开放出一个order属性,可以通过order属性指定解析器的优先顺序,order越小,优先级越高,SpringMvc会按视图解析器顺序对逻辑视图名进行解析,直到解析成功并返回视图对象,否则将抛出ServletException异常。

         若想直接响应SpringMvc渲染的页面,可以使用mvc:view-controller

    <mvc:view-controller path="springMvc/test" view-name="hujingwei">
    

      所以当访问路径"springMvc/test"时,会直接跳转到hujingwei.jsp这个页面。

     /*
        * 关于重定向
        * 一般情况下,控制器的方法返回字符串类型的值会被当成逻辑视图名处理,
        * 如果返回的字符串中带forward:或redirect:前缀的时候,SpringMvc会对它们进行特殊的处理,其后的字符串会被作为URL来处理
        * */
    

      

  • 相关阅读:
    java网络请求工具类
    MySql 日期比较大小
    JAVA泛型整理
    循环list从list中移除数据
    MySql UNION字段
    session理解
    IDEA鼠标悬停提示变量值
    JAVA常用的RPC框架
    字符串查找重复字符最多的
    java List分组
  • 原文地址:https://www.cnblogs.com/hujingwei/p/5347543.html
Copyright © 2020-2023  润新知