2012-04-27 46 views
1

我找到了編程式登錄到基於jsf的應用程序的示例,例如來自Balusc的this。 也許是愚蠢的問題,但是,當我使用基於表單的身份驗證,我可以在<form method="post" action="j_security_check">形式只使用一個簡單的HTML表單與以編程方式登錄到jsf應用程序

<input id="username" type="text" name="j_username" /> 
<input id="password" type="password" name="j_password"/> 

我不能從例子中使用jsf窗體,爲什麼?

回答

1

因爲處理登錄的不是JSF,而是容器本身。 JSF <h:form>不允許您指定特定的操作URL。所以你必須使用<form>

但是你的問題標題很混亂。使用j_security_check表格是而不是「程序化登錄」。這是「容器管理登錄」。 real程序化登錄方式是自己撥打HttpServletRequest#login()。您可以在由JSF <h:form>調用的JSF託管bean操作方法中執行此操作。

+0

很難承認然後我覺得啞巴。我在web.xml中的部分確定了 /login/loginSimple.xhtml。當我嘗試讓程序化的jsf登錄頁面變得適當的託管bean - loginSimple.xhtml時,它根本不起作用:( – Zbyszek 2012-04-27 13:45:52

+0

然後你使用容器管理登錄,你應該確實使用普通的'

'。需要在JSF中爲此做任何事情。 – BalusC 2012-04-27 13:46:40