2010-06-09 61 views
1

我已經使用tomcat作爲應用程序服務器編寫了一個facelets Web應用程序。我的程序有一個foobar.xhtml和網址是:使用JSF從URL中刪除Foobar.xhtml

http://localhost:8080/Myapplication/foobar.faces

我可以改變的東西在我的應用程序,以便鏈接到:

http://localhost:8080/Myapplication/

..will實際呈現我的申請http://localhost:8080/Myapplication/foobar.faces

或者,http://localhost:8080/Myapplication/可以重定向到http://localhost:8080/Myapplication/foobar.faces

回答

1

您通常會在web.xml中使用<welcome-file>條目。但不幸的是,至少在Tomcat上,當使用假想的URL通過一個像FacesServlet這樣的servlet傳遞時,這種方式無法按預期工作。在轉發之前,Tomcat將掃描磁盤上與實際名稱匹配的物理文件。如果它不存在,那麼你只會面對一個默認的404錯誤頁面。

使用/foobar.xhtml作爲<welcome-file>也不起作用,因爲該頁面需要由FacesServlet進行解析才能使所有JSF工具正常工作。

解決此問題的方法之一是將另一個真實的/foobar.faces文件放在真實的/foobar.xhtml文件旁邊。它不需要填充代碼,它可以留空。只要物理文件的存在足以讓Tomcat作爲歡迎頁面打開所需的頁面。

+0

謝謝!我已經嘗試過歡迎文件列表,但它沒有奏效。現在我明白這是一個tomcat問題。偉大的解決。 – Roalt 2010-06-10 06:18:40

0

web.xml中有

<welcome-file-list> 
    <welcome-file>foobar.faces</welcome-file> 
</welcome-file-list> 

元素,用戶可以定義頁面被打開。