2013-12-03 1 views
0

У меня есть <af:selectOneChoice> с immediate=true и autoSubmit=true и a <af:inputText> с rendered=#{bean.someValue}, required=true и immediate=true.
Как пропустить фазу проверки <af: inputtext>?

Когда я выбираю choice 1 от <af:selectOneChoice>bean.someValue является ложным, поэтому <af:inputText> не отображается. И когда я выбираю choice 2 от <af:selectOneChoice>, то bean.someValue правдиво, поэтому <af:inputText> визуализирован.

Test Case: Первоначально choice 1 выбран в <af:selectOneChoice>, поэтому <af:inputText> не визуализируется. Когда я выбираю choice 2 в <af:selectOneChoice>, <af:inputText> визуализируется, и он становится видимым. Когда я снова выбираю choice 1 в <af:selectOneChoice>, наброски и ошибки страницы Enter a value, но значение <af:selectOneChoice> меняется на choice 1.

В этом случае я хочу, чтобы значение <af:selectOneChoice> должно было вернуться к choice 2.

Как это сделать?

+0

Бросьте код (не менее jsf). В вашей выборке может быть много питфалов. – Nagh

ответ

0

Я немного смущен вашим тестовым случаем, поэтому вы говорите, что когда inputText пуст, вы меняете selectOneChoice на выбор 1, а так как ваш атрибут inputText «требуется» установлен в true, поэтому ADF бросает визуальная ошибка напоминает вам «ввести значение», до сих пор все, что вы ожидали, не так ли? Но хотя всплывает сообщение об ошибке, selectOneChoice все равно изменился на выбор 1, это проблема правильная?

Предполагаю, что значение selectOneChoice не изменится к выбору 1 в случае ошибки, вы можете добавить код проверки в valueChangeListener компонента selectOneChoice из обратного компонента, чтобы решить, нужно ли изменять значение.

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