2012-05-03 3 views
2

В моей форме есть несколько кнопок «отправить», , и проверка некоторых полей зависит от того, какое нажатие было нажато. Как я могу найти это в своем обычном валидаторе?Как пользовательский валидатор может узнать, какой из команд был нажат.

Благодаря Jonny

+0

ты пользуешься ASPX или PHP HTML? – sm13294

+0

его приложение jsf – user871611

ответ

6

Идентификатор клиента кнопки также генерируется как name из <input type="submit">. name=value прессованных <input type="submit"> также отправляются в качестве параметров запроса. Поэтому вы можете просто проверить это на карте параметров запроса.

E.g.

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

Это сделало трюк. Еще раз спасибо BalusC – user871611

+0

Добро пожаловать. – BalusC

0

Для JSF будут встроенные сообщения проверки, которые будут получать отображаемые во время Errors..or вы можете использовать проверки атрибутов, как «валидатор & validatorMessages» в primefaces в соответствующих тегов.

+0

Извините за неточность: я имел в виду пользовательский валидатор. Я уточню тему моего вопроса. – user871611

Смежные вопросы