我正在使用Spring開發一個網站,并且我正在嘗試提供不是.jsp文件的資源(例如.html)現在我已經注釋掉了我的servlet配置的這一部分 <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver" p:prefix="/WEB-INF/jsp/" p:suffix=".jsp" />并試圖從控制器返回資源的完整路徑。@Controllerpublic class LandingPageController {protected static Logger logger = Logger.getLogger(LandingPageController.class);@RequestMapping({"/","/home"})public String showHomePage(Map<String, Object> model) { return "/WEB-INF/jsp/index.html"; }}index.html文件存在于該文件夾中。注意:當我將index.html更改為index.jsp時,我的服務器現在正確地提供頁面。謝謝。
3 回答

慕尼黑5688855
TA貢獻1848條經驗 獲得超2個贊
最初的問題是配置指定了一個屬性,suffix=".jsp"因此ViewResolver實現類將添加.jsp到從方法返回的視圖名稱的末尾。
但是,由于您注釋掉了InternalResourceViewResolver那時,根據應用程序配置的其余部分,可能沒有注冊任何其他ViewResolver。您可能會發現現在沒有任何工作。
由于.html文件是靜態的,并且不需要servlet處理,因此使用<mvc:resources/>映射更有效,也更簡單。這需要Spring 3.0.4+。
例如:
<mvc:resources mapping="/static/**" location="/static/" />
這將通過啟動與所有請求/static/的webapp/static/目錄。
因此,通過從您的方法index.html中輸入webapp/static/和使用return "static/index.html";,Spring應該找到視圖。

達令說
TA貢獻1821條經驗 獲得超6個贊
我只是補充一點,你不需要為它實現一個控制器方法,因為你可以在servlet配置文件中使用view-controller標簽(Spring 3):
<mvc:view-controller path="/" view-name="/WEB-INF/jsp/index.html"/>
- 3 回答
- 0 關注
- 927 瀏覽
添加回答
舉報
0/150
提交
取消