下面是idea軟件創建的項目目錄,這里總結了一下轉發與重定向的問題,詳解如下。
首先解釋一下每個文件夾的作用,如果你是用的是idea創建的springboot項目,會在項目創建的一開始resources文件夾下自動創建static以及templates文件夾。也就是說項目初始時有java、resource、static以及templates 這幾個文件夾。
一般static下存放js以及css樣式文件,templates存放html頁面。
以上是默認會創建的文件夾以及其作用
首先static文件夾以及templates文件夾是受保護的,也就是說相當於你將文件放到了傳統的ssh或ssm項目的WEB-INF下了。所以也就是說這兩個文件夾下的文件是無法通過url直接訪問的,以至於在springmvc下使用重定向會報404。
在講重定向與轉發之前先講一下目錄優先級的情況,webapp>META-INF/resources>resources>static>public(親測有效)
那么如何能夠直接訪問到html或者css呢?
方法一
我們可以在resources下創建一個名為public的文件夾,顧名思義,放在此文件夾下的文件是共有的,可以直接通過url訪問,當然也可以springmvc重定向訪問啦。
方法二
在main下創建webapp文件夾,將文件放到此文件夾下,效果同上。
注!文件夾名字是固定的,起別的名字還是會報404或者無效
首先呢public與wenapp這二個在使用過程中一般創建一個目錄就好了,如下圖。
訪問index1.html頁面http://localhost:8888/index1.html
可以看到直接訪問到是webapp下的index.html頁面。因為webapp優先級大於public優先級。webapp>public
關於springmvc重定向寫法
@RequestMapping(“/test1”)
public String test1(){
return “index”;
}
轉發是不需要手動加html的,此時springboot發現是轉發,默認配置下他會自動去templates文件夾下找到對應的文件進行轉發,如果return后寫的是index.html會報404。
重定向
@RequestMapping(“/test2”)
public String test2(){
return “redirect:index1.html”;
}
首先,添加redirect:這個毋庸置疑是mvc的語法問題,其次這里需要注意的是需要手動添加.html,否則會報404,而重定向則會自動去public文件夾下尋找。至於與webapp優先級別則同上述。