最近学习springboot,在写controller层的时候对方法的返回值有一些疑问,下面通过实例进行解答。
test8.html页面如下
直接访问test9得到的如下,是test8.html,而不是请求路径‘/test8’对应得到的页面。
直接访问test10得到的如下,是请求路径‘/test8’对应得到的页面。
直接访问test11得到的如下,是请求路径‘/test8’对应得到的页面。
可以归纳如下,如果直接return不加forward和redirect关键字,那么会在return的字符串上添加springMVC配置文件里设置好的前缀和后缀,然后转发到资源。如果加上forward和redirect,那么就会根据关键字不同处理不同,如果是forward,那么不会拼接配置文件里设置的前缀和后缀,直接原字符串转发资源。如果是redirect,也不会拼接配置文件里设置的前缀和后缀,而是再向服务器发送一次新的请求,forward和redirect的区别是前者在服务器端重发,浏览器感知不到,地址栏也不会变化。