以编程方式登录到jsf应用程序

问题描述:

我找到了编程式登录到基于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窗体,为什么?

因为处理登录的不是JSF,而是容器本身。 JSF <h:form>不允许您指定特定的操作URL。所以你必须使用<form>

但是你的问题标题很混乱。使用j_security_check表格是而不是“程序化登录”。这是“容器管理登录”。 real程序化登录方式是自己拨打HttpServletRequest#login()。您可以在由JSF <h:form>调用的JSF托管bean操作方法中执行此操作。

+0

很难承认然后我觉得哑巴。我在web.xml中的部分确定了 /login/loginSimple.xhtml form-login-page>。当我尝试让程序化的jsf登录页面变得适当的托管bean - loginSimple.xhtml时,它根本不起作用:( – Zbyszek 2012-04-27 13:45:52

+0

然后你使用容器管理登录,你应该确实使用普通的'

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