2013-05-30 47 views
1

我在Jboss AS 7上使用JSF 2。我想用一些代碼來決定顯示哪個主頁(/)。我有一個可以呈現正確頁面的servlet(/ homePage),所以如果我去/ homePage /它運行良好,但我希望能夠在/ url上做到這一點。我如何設置歡迎頁面使用servlet而不是頁面?JSF2中的動態歡迎文件

我試過建立一個servlet來偵聽所有的請求,並且呈現正確的頁面的請求是(/),但JSF似乎試圖解析servlet之前的歡迎文件。

我意識到我可以直接從主頁(index.xhtml)重定向到/ homePage,但是會爲瀏覽器添加更多往返行程,並使URL看起來很醜。

感謝您的幫助!

更新....這裏是一個是從來沒有所謂的

@WebServlet("/homePage") 
public class HomePageServlet extends HttpServlet { 
    @Override 
    protected void service(HttpServletRequest request, 
      HttpServletResponse response) throws ServletException, IOException { 
      System.out.println("----------HOME PAGE SERVLET CALLED"); 
      RequestDispatcher dispatcher = null; 
      dispatcher = request.getRequestDispatcher(HOME_PAGE1); 
      dispatcher.forward(request, response); 
    } 
} 

這裏是我的web.xml歡迎文件列表

<welcome-file-list> 
    <welcome-file>/homePage</welcome-file> 
</welcome-file-list> 

瀏覽器接收404和「小服務程序 - --------主頁SERVLET CALLED「從不打印。

+0

能告訴你什麼樣的配置你使用你的servlet? –

回答

0

您可以將<welcome-file>設置爲一個servlet URL。

E.g.

<welcome-file>/index</welcome-file> 

@WebServlet("/index") 
+0

Balus,謝謝你的回答,但不幸的是它似乎不起作用。我清除了所有不相關的過濾器/ servlet,現在只有@WebServlet(「/ homePage」)和/homePage,但服務器返回一個404,並且該servlet從不調用。這實際上用於使用JSF 1.2和seam的Jboss 6,但不是使用JSF2的Jboss 7。 – Mason