【发布时间】:2012-05-12 19:43:13
【问题描述】:
我的表单有几个“提交”按钮, 并且某些字段的验证取决于按下了哪个字段。 如何在我的自定义验证器中找到它?
【问题讨论】:
-
你使用的是aspx还是php html?
标签: jsf-2 primefaces myfaces
我的表单有几个“提交”按钮, 并且某些字段的验证取决于按下了哪个字段。 如何在我的自定义验证器中找到它?
【问题讨论】:
标签: jsf-2 primefaces myfaces
按钮的客户端 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.
}
【讨论】:
对于 JSF,将有内置的验证消息,这些消息将在错误期间显示。或者您可以在它们各自的标签中的 primefaces 中使用“validator & validatorMessages”等验证属性。
【讨论】: