使用Primefaces进行j_security_check

如何使用Primefaces实现j_security_check ? 通常在JSP中如果要使用JAAS进行登录,则登录表单通常为:

Username:
Password:

但是我们如何在JSF或Primefaces中实现它!

  • 这将是什么行动
  • 我们如何摆脱像formId:componentId这样的id或名称
  • p:commandButton默认情况下在Primefaces中被ajaxified,所以它如何以非ajax方式提交表单

我需要使用Primefaces实现JAAS表单身份validation,我在这里分享解决方案; 它可能对某人有用。

解决方案非常简单。

  • 您需要使用prependId="false"定义h:form ,以便它不会像formId:componentId一样生成组件的id或名称。
  • 您需要在h:form定义action="j_security_check" ,如onsubmit="document.getElementById('login').action='j_security_check';"
  • p:commandButtonajax属性设置为false ,以便不以ajax方式提交表单。

而已。 以下是登录表单的完整代码,可由上述表格替换:

          

谢谢。

有工作(使用Primefaces 5)代码(从p:inputText删除名称属性和p:密码,删除由BalusC部分建议):