更新時間:2021-12-29 10:41:33 來源:動力節(jié)點(diǎn) 瀏覽1342次
下面是idea軟件創(chuàng)建的項目目錄,這里總結(jié)了一下轉(zhuǎn)發(fā)與重定向的問題,詳解如下。
首先解釋一下每個文件夾的作用,如果你是用的是idea創(chuàng)建的springboot項目,會在項目創(chuàng)建的一開始resources文件夾下自動創(chuàng)建static以及templates文件夾。也就是說項目初始時有java、resource、static以及templates 這幾個文件夾。
一般static下存放js以及css樣式文件,templates存放html頁面。
以上是默認(rèn)會創(chuàng)建的文件夾以及其作用
首先static文件夾以及templates文件夾是受保護(hù)的,也就是說相當(dāng)于你將文件放到了傳統(tǒng)的ssh或ssm項目的WEB-INF下了。所以也就是說這兩個文件夾下的文件是無法通過url直接訪問的,以至于在springmvc下使用重定向會報404。
在講重定向與轉(zhuǎn)發(fā)之前先講一下目錄優(yōu)先級的情況,webapp>META-INF/resources>resources>static>public(親測有效)
方法一
我們可以在resources下創(chuàng)建一個名為public的文件夾,顧名思義,放在此文件夾下的文件是共有的,可以直接通過url訪問,當(dāng)然也可以springmvc重定向訪問啦。
方法二
在main下創(chuàng)建webapp文件夾,將文件放到此文件夾下,效果同上。
注!文件夾名字是固定的,起別的名字還是會報404或者無效
首先呢public與wenapp這二個在使用過程中一般創(chuàng)建一個目錄就好了,如下圖。
訪問index1.html頁面http://localhost:8888/index1.html
可以看到直接訪問到是webapp下的index.html頁面。因為webapp優(yōu)先級大于public優(yōu)先級。webapp>public
@RequestMapping(“/test1”)
public String test1(){
return “index”;
}
轉(zhuǎn)發(fā)是不需要手動加html的,此時springboot發(fā)現(xiàn)是轉(zhuǎn)發(fā),默認(rèn)配置下他會自動去templates文件夾下找到對應(yīng)的文件進(jìn)行轉(zhuǎn)發(fā),如果return后寫的是index.html會報404。
@RequestMapping(“/test2”)
public String test2(){
return “redirect:index1.html”;
}
首先,添加redirect:這個毋庸置疑是mvc的語法問題,其次這里需要注意的是需要手動添加.html,否則會報404,而重定向則會自動去public文件夾下尋找。至于與webapp優(yōu)先級別則同上述。
初級 202925
初級 203221
初級 202629
初級 203743