[springMVC]03.20复习springMVC视图

springMVC

SpringMVC的视图

SpringMVC中视图是View接口,视图的作用为渲染数据,将模型Model中的数据展示给用户
默认有转发视图(forward)\重定向视图(redirect)
将工程引入jstl的依赖之后,转发视图会自动转换为JstlView
但是若使用的是Thymeleaf,在SpringMVC的配置文件中配置了Thymeleaf的视图解析器,由此视图解析器解析之后得到的是ThymeleafView

  1. ThymeleafView
    当控制器方法中所设置的视图名称没有任何前缀的时候,此时的视图名称会被springMVC.xml所配置的视图解析器所解析,然后拼接前后缀得到最终路径,通过转发的方式实现跳转

此处提一下转发和重定向的区别

转发(forward):eg:你去柜台办理业务,业务不在这个窗口办理,但是柜台人员帮你去其他柜台办理了(他虽然没法处理,但是不会让你去其他窗口办理而是在他系统内部帮你处理了)这种感觉.

  1. 地址栏不会发生变化,显示的是上一个页面的地址
  2. 请求的次数只有一次
  3. 请求域中的数据不会丢失

重定向(redirect):eg:你去柜台办理业务,业务不在这个窗口办理,但是柜台人员会告诉你去其他窗口办理(servlet服务器就像这个职员,servlet做重定向时候告知浏览器,然后浏览器就只能去其他窗口办理(去请求servlet告诉另外一个地址))

  1. 显示新的地址
  2. 请求的次数为两次
  3. 请求域中的数据会丢失(2次请求)

什么时候使用转发,什么时候使用重定向

  1. 如果保留请求域中的数据的话使用转发,否则使用重定向
  2. 以后访问数据库,CUD使用重定向 R使用转发

  1. 视图控制器view-controller
    当控制器方法中,仅仅用来实现页面跳转,即只需要设置视图名称是,可以将处理器方法使用view-controller标签进行表示
<!--view-controller设置之后,其他控制器中的请求映射全部失效,需要开始mvc注解驱动-->
    <mvc:view-controller path="/" view-name="index"></mvc:view-controller>
    <mvc:view-controller path="/test_view" view-name="test_view"></mvc:view-controller>
    <mvc:view-controller path="/test_rest" view-name="test_rest"></mvc:view-controller>

    <!--开启mvc注解驱动,让controller中的注解生效-->
    <mvc:annotation-driven/>

注意:但springMVC中设置了任意一个view-controller时候,其他controller中的请求映射全部失效,此时需要在springMVC.xml中开启mvc注解驱动,让controller中的注解生效
<mvc:annotation-driven/>

posted @ 2022-03-20 20:34  1_f  阅读(17)  评论(0)    收藏  举报