springMVC视图(ThymeleafView、InternalResourceView、RedirectView)


提示:个人学习笔记

一、ThymeleafView

  springMVC工程中使用Thymeleaf视图解析器,在控制器方法中所返回的视图名(无任何前后缀)会被解析,拼接上配置文件中Thymeleaf设置的前后缀,然后跳转到视图页面

  控制器方法:

//转发到view_test页面
@Controller
public class IndexController {
    @RequestMapping("/view_test")
    public String testThymeleafView() {
        return "view_test";
    }
}

  view_target.html视图页面:

<a th:href="@{/testThymeleafView}">测试ThymeleafView</a><br>

  控制器方法:

    //ThymeleafView
    @RequestMapping("/testThymeleafView")
    public String testView(){
        return "target";
    }

实现流程:
  1、Controller1 : view_test的请求映射地址,该控制器方法返回视图名view_test
  2、view_test.html:超链接(请求映射testThymeleafView)
  3、Controller2 : testThymeleafView的请求映射地址,该控制器方法返回视图名target

二、InternalResourceView(转发视图)

  所在控制器方法返回的视图以forward:为前缀,如forward:/path,此时springMVC所配置的Thymeleaf解析器不会解析,会自动创建一个InternalResourceView,去掉前缀forward:,然后跳转到/path页面

  view_target.html视图页面:

    <a th:href="@{/testForward}">测试InternalResourceView</a>

  控制器方法:

    //InternalResourceView
    @RequestMapping("/testForward")
    public String testForword(){
        return "forward:/testThymeleafView"; //转发到testThymeleafView请求映射
    }
    

三、RedirectView(重定向)

  以redirect:为前缀,形如redirect:/path

  view_target.html视图页面:

    <a th:href="@{/testRedirectView}">测试RedirectView</a>

  控制器方法:

    //RedirectView
    @RequestMapping("/testRedirectView")
    public String testRedirect(){
        return "redirect:/testThymeleafView"; //重定向到testThymeleafView请求映射,然后实现跳转
    }

  WEB-INF下的视图只能由服务器内部资源访问,不能够被重定向的资源(重定向后属于两次请求,两个作用域)所访问,在springMVC工程如果配置的是ThymeleafView视图解析器,则所有页面都会经过该解析器,只能通过转发来访问WEB-INF下的视图页面



如果控制器方法中只设置了视图页面跳转,无其他参数处理,则可以将请求地址映射和视图名使用<mvc:view-controller path="" view-name=""/>在配置文件中配置,如上述,可配置为
<mvc:view-controller path="/view_test" view-name="view_test"/>
  path:请求地址
  view-name:请求地址所处理的视图名

在这里插入图片描述
在设置视图控制器后,需要在配置文件中配置<mvc:annotation-driven/>注解驱动,否则其他控制器方法的请求无法处理,报404错误

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值