2012-04-28 32 views
1

項目到具體頁面,在Primefaces + JSF2.0應用程序,我有一個Primefaces + JSF的網站,其主頁是 本地主機的根:81/Mywebapp/login.jsf如何重定向使用JBoss 7

我想將用戶重定向到該主頁,如果他轉到:localhost:81/Mywebapp /,那麼他不需要編寫完整的URL。

我該怎麼做?我想這是JBoss的一些配置

任何幫助嗎?感謝

回答

4

實際上它應該是在你的web.xml文件,試圖把它的結束此項

<welcome-file-list> 
    <welcome-file>/login.jsf</welcome-file> 
</welcome-file-list> 

編輯

我也做了新的index.jsp這樣解決了這個曾經

<%@page contentType="text/html" pageEncoding="UTF-8"%> 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd"> 

<html> 
<head> 
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
    <title>JSP Page</title> 
</head> 
<body> 
    <jsp:forward page="/login.jsf" /> 
</body> 
</html> 

還是放在那裏的一個html文件,使用此元

<meta http-equiv="Refresh" content= "0; URL=login.jsf"/> 

並將其中一個設置爲您的歡迎文件。其中一個解決方案應該爲你做的工作:-)

+0

它的權利沒有工作 – Tony 2012-04-28 20:29:12

+1

好了,在你的情況也許這一個將幫助http://stackoverflow.com/questions/7015656/welcome-page-in-jsf – 2012-04-28 20:33:06

0

很抱歉的第二個答案,在註釋的格式並沒有真正削減它:

<welcome-file-list> 
      <welcome-file>index.xhtml</welcome-file> 
    </welcome-file-list> 
... 
    <context-param> 
     <param-name>javax.faces.DEFAULT_SUFFIX</param-name> 
     <param-value>.xhtml</param-value> 
    </context-param> 
... 
    <servlet-mapping> 
     <servlet-name>Faces Servlet</servlet-name> 
     <url-pattern>*.xhtml</url-pattern> 
     <url-pattern>*.jsf</url-pattern> 
     <url-pattern>subdir/*</url-pattern> 
    </servlet-mapping> 

彼得的回答應該工作得很好,但如果你真的關心擴展(這並不重要),那麼只需在servlet下添加你想要映射的地方即可。這映射* .xhtml,* .jsf和'subdir /'下的任何東西。

If you had a hard file: 
- index.xhtml 

Myapp/index.xhtml and 
Myapp/index.jsf 
would map to the same file. xhtml is since your default suffix is xhtml 

我希望這有助於,誠實地說,與Primefaces 2我肯定會使用xhtml,因爲這是規範。使用3並不重要,但我仍然留在xhtml中,因爲它通常不在我的服務器上。

最好的運氣(切赫的轉發技巧是不是一個壞主意 - 它可以在惡劣的情況下,真正的幫助)

0

您可以隨時與像PrettyFaces URL重寫引擎做到這一點。你必須激活它在你的web.xml,然後這樣定義重寫規則:

<url-mapping id="login"> 
    <pattern value="/login" /> 
    <view-id value="/legacy/user/login.xhtml" /> 
</url-mapping> 

因爲你提到明確login.jsf我認爲這是考慮包括安全框架,它是這樣做的(以及許多其他的東西是個好主意) 爲你。 Seam security提供類型安全的註解是:

@ViewConfig 
public interface SeamPages 
{ 
    static enum Pages0 
    { 
    @ViewPattern("/jsf/admin/important.xhtml") 
    @UrlMapping(pattern="/admin/important") 
    @LoginView("/jsf/access/loginRequired.xhtml") 
    @AccessDeniedView("/jsf/access/accessDenied.xhtml") 
    @RestrictAtPhase(PhaseIdType.RESTORE_VIEW) 
    @LoggedIn 
    ENUM0; 
    } 
} 

這將解決三個共同的要求:

  • 的URL /yourApp/admin/important將被重定向到/jsf/admin/important.xhtml JSF頁面。
  • 如果用戶不@LoggedIn他將被重定向到/jsf/access/loginRequired.xhtml
  • 如果用戶沒有訪問,他將被重定向的頁面/jsf/access/accessDenied.xhtml