jsf-2 - 自定义验证器如何知道单击了哪个命令按钮

标签 jsf-2 primefaces myfaces

我的表单有几个“提交”按钮, 某些字段的验证取决于按下的是哪个字段。 我怎样才能在我的自定义验证器中找到它?

最佳答案

按钮的客户端 ID 也生成为 name<input type="submit"> . name=value按下 <input type="submit"> get 也作为请求参数发送。所以你可以在请求参数映射中检查它。

例如

<h:form id="formId">
    ...
    <h:commandButton id="button1" ... />
    <h:commandButton id="button2" ... />
</h:form>

validate() 中包含以下内容实现:

Map<String, String> params = context.getExternalContext().getRequestParameterMap();

if (params.containsKey("formId:button1")) {
    // Button 1 is pressed.
}
else if (params.containsKey("formId:button2")) {
    // Button 2 is pressed.
}

关于jsf-2 - 自定义验证器如何知道单击了哪个命令按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10428899/

相关文章:

java - "Unknow type constant pool at position X"在自 java 8 以来的 tomcat 日志中

jsf - 需要 EJB 3.1 Singleton + JPA + JSF 设计建议

使用 jsf 未在对话框中呈现验证消息

jsf - p :push not working with atmosphere spring boot

jsf - IllegalArgumentException : com. ibm.ws.jsf.config.annotation.WASMyFacesAnnotationProvider 不是 org.apache.myfaces.spi.AnnotationProvider

jsf-2 - Icesfaces vs Myfaces vs Primefaces

java - 找不到命名对象

tomcat - 将 RichFaces 3.3.3 部署到具有 MyFaces 2.2、PrimeFaces、OmniFaces 等的 Tomcat

ajax - 使用 Ajax 从 DataTable 中删除单行

jsf-2 - 将 Apache Myfaces 与 Prime faces 结合使用