我需要使用以下格式的<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方法。我怎么能实现这个目标呢?
答案 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
。只是不要重复默认值并保留代码以保持简洁。