2010-08-19 87 views
1

希望你能幫助我這個: 我與j_security_check工作,有這個問題j_security_check URL問題

我有必須限制在任何unloged用戶個人資料頁, 所以我添加了一個安全約束在web.xml文件和工作正常 如果我嘗試通過地址欄中訪問,這表明我的登錄頁面完全確定

現在的問題是:在我的索引頁例如:

http://localhost/mySite/index.xhtml

有一個鏈接

<h:commandLink action="user/Profile" />

這種重定向我的個人資料頁確定,但URL還是一樣

http://localhost/mySite/index.xhtml

so j_security_check不顯示登錄頁面 據我所見j_security_check適用於url和jsf不要 ,如果在配置文件頁面按下鏈接前:myImages然後現在url說:

例如:http://localhost/mySite/user/Profile.xhtml

這是爲什麼happend?有沒有什麼辦法解決這一問題 ?? 在此先感謝

我一直在使用另一種方法是把一個像

<a href="user/Profile.xhtml" >Profile</a>

這表明我的登錄頁面,但如果我去的index.xhtml和印刷機配置文件這個沒有找到頁面,因爲重定向我:

例如:http://localhost/mySite/user/user/Profile.xhtml

回答

1
<h:commandLink action="user/Profile" /> 

h:commandLinkh:commandButton火災一個HTTP POST請求(由h:form)到當前頁這反過來轉發爲給定的資源。

您不想使用POST進行頁面到頁面導航。這不僅僅是不好的用戶體驗(URL不會改變,在瀏覽器歷史記錄中前進/後退時的非直觀行爲),但也不適合搜索引擎優化(searchbots不會對POST進行索引)。

如果您根本不需要任何JSF-ish功能,則需要將其替換爲h:outputLink,或者如您發現的那樣,通過簡單的<a>元素替換它。

至於你最後一個指向錯誤URL(帶有重複路徑)的問題:當你使用h:outputLink時,這個問題就解決了。然後JSF將考慮當前的上下文路徑。