【问题标题】:How can a custom-validator know which commandButton was clicked自定义验证器如何知道单击了哪个命令按钮
【发布时间】:2012-05-12 19:43:13
【问题描述】:

我的表单有几个“提交”按钮, 并且某些字段的验证取决于按下了哪个字段。 如何在我的自定义验证器中找到它?

【问题讨论】:

  • 你使用的是aspx还是php html?

标签: jsf-2 primefaces myfaces


【解决方案1】:

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

例如

<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.
}

【讨论】:

    【解决方案2】:

    对于 JSF,将有内置的验证消息,这些消息将在错误期间显示。或者您可以在它们各自的标签中的 primefaces 中使用“validator & validatorMessages”等验证属性。

    【讨论】:

    • 抱歉不准确:我指的是自定义验证器。我会更新我的问题的主题。
    猜你喜欢
    • 2013-12-25
    • 1970-01-01
    • 1970-01-01
    • 2023-04-01
    • 1970-01-01
    • 2017-06-04
    • 1970-01-01
    • 2021-05-17
    • 1970-01-01
    相关资源
    最近更新 更多