1.Thymeleaf视图
当控制器方法中所设置的视图名称没有任何前缀时,此时的视图名称会被SpringMVC配置文件中所配置的视图解析,视图名称拼接视图前缀和视图后缀所得到的最终路径,会通过转发的方式实现跳转
SpringMVC.xml
ViewController.java
@Controller
public class ViewController {
//template视图
@RequestMapping("/templateView")
public String templateView(){
return "success";
}
}
view.html
使用template视图解析器前端浏览器会自动添加上下文路径
templateView视图解析器
2.转发视图
SpringMVC中默认的转发视图是InternalResourceView
当控制器方法中所设置的视图名称以"forward:"为前缀时,创建InternalResourceView视图,此时的视图名称不会被SpringMVC配置文件中所配置的视图解析器解析,而是会将前缀"forward:"去掉,剩余部分作为最终路径通过转发的方式是实现跳转
转发视图有两种方式:一种没有任何前缀的视图或另一种为"forward:"开头视图。
SpringMVC.xml
InternalResourceView.java
@Controller
public class InternalResourceView {
//转发视图
@RequestMapping("/forward")
public String forward(){
return "success";
}
}
@Controller
public class InternalResourceView {
//ThymeleafView视图
@RequestMapping("/templateView")
public String templateView(){
return "success";
}
//转发视图
@RequestMapping("/forward")
public String forward(){
return "forward:/templateView";
}
}
success.jsp
使用InternalResource视图解析器需要在jsp中添加上下文路径
转发到成功页面
3.重定向视图
SpringMVC默认的重定向视图是RedirectView
当控制器方法中所设置的视图名称以"redirect:"为前缀时,创建RedirectView视图,此时的视图名称不会被SpringMVC配置中所配置的视图解析器解析,而是会将前缀"redirect:"去掉,剩余部分作为最终路径通过重定向的方式实现跳转
重定向视图只有一种方式:那就是以"redirect:"开头的视图
SpringMVC.xml
InternalResourceView.java
@Controller
public class InternalResourceView {
//ThymeleafView视图
@RequestMapping("/templateView")
public String templateView(){
return "success";
}
//重定向视图
@RequestMapping("/redirect")
public String redirect(){
return "redirect:/templateView";
}
}
success.jsp
重定向到成功页面
转发和重定向的区别
相同点:
页面都会实现跳转
不同点:
转发时地址url没有改变
重定向时地址url发生了改变
4.视图控制器view-controller
当控制器方法中,仅仅来实现页面跳转,即只需要设置视图名称时,可以将处理器方法使用view-controller标签进行表示



