私のフォームにはいくつかの「送信」ボタンがあり、いくつかのフィールドの検証はどちらが押されたかによって異なります。カスタムバリデーターでそれを見つけるにはどうすればよいですか?
2745 次
2 に答える
6
ボタンのクライアント ID も の時点name
で生成され<input type="submit">
ます。name=value
押された get のも<input type="submit">
リクエスト パラメータとして送信されます。そのため、リクエスト パラメータ マップでそれを確認できます。
例えば
<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.
}
于 2012-05-03T14:12:36.067 に答える
0
JSF の場合、エラー中に表示される組み込みの検証メッセージがあります。または、それぞれのタグのプライムフェイスで「validator & validatorMessages」などの検証属性を使用できます。
于 2012-05-03T11:29:30.793 に答える