Я использую Richfaces 3.3.3 для своего приложения. Я не уверен, как добиться условной обязательной проверки в богатых лицах. Ниже мой сценарий:
У меня есть 3 текстовых поля input1, input2, input3 следующим образом:
<h:inputText id="input1" value= "#{mybean.input1}" required= "true" maxlength="350" >
<mj:regexValidator pattern="[0-9A-Za-z% ]*" />
</h:inputText>
<h:inputText id="input2" "#{mybean.input2}"maxlength="350" ></h:inputText>
<h:inputText id="input3" "#{mybean.input3}"maxlength="350"></h:inputText>
<a4j:commandButton value="save" action="#{mybean.saveData}"/>
В приведенном выше коде «input1» является обязательным полем, принимающим только буквенно-цифровое значение.
«input2» является необязательным полем, а «input3» требуется только в том случае, если пользователь вводит «input2», в противном случае «input3» также является необязательным
В настоящее время я проверяю input2 и input3 в методе saveData на компоненте поддержки (по нажатию кнопки сохранения) и выдаю сообщение об ошибке на экран.
Но следующий сценарий терпит неудачу,
Если пользователь вводит специальный символ, например "####", в input1 и вводит допустимое значение в input2, но оставляет input3 пустым, я получаю только сообщение об ошибке, относящееся к input1, на экране.
Это связано с тем, что проверка правильности регулярного выражения запускается еще до достижения метода сохранения в компоненте поддержки.
Есть ли способ преодолеть этот метод. Пожалуйста, совет