我可以为<h:commandbutton type =“submit”> </h:commandbutton>编写actionListner或action

时间:2013-07-19 05:44:07

标签: jsf-2 facelets j-security-check commandbutton

我需要使用以下格式的<h:commandButton type="submit">执行支持bean方法:

<h:form id="login" prependId="false" onsubmit="document.getElementById('login').action='j_security_check';">

    <h:commandButton type="submit">  

</h:form>

我尝试定义action以及actionListner,但是从不执行辅助bean方法。我怎么能实现这个目标呢?

1 个答案:

答案 0 :(得分:0)

失败是因为您将表单操作URL更改为非JSF URL。该URL永远不会到达FacesServlet,因此它将无法解码,排队和调用命令按钮操作。完全删除onsubmit属性(最好还是prependId)。然后它将提交给正确的JSF URL并调用命令按钮操作。

<h:form id="login">

如果您打算使用JSF执行容器管理身份验证,请转到以下答案:Performing user authentication in Java EE / JSF using j_security_check以了解如何正确使用j_security_check而无需执行JSF命令按钮操作,还可以以编程方式在JSF命令按钮操作方法中执行,而不是尝试直接提交到j_security_check

<h:commandButton type>默认为submit。只是不要重复默认值并保留代码以保持简洁。