у меня есть jsf-форма с полем ввода и кнопкой сохранения, как показано в коде ниже. Чего я хочу добиться, так это того, что при нажатии кнопки сохранения ввод должен быть проверен с помощью шаблона регулярного выражения. Если проверка не удалась, диалоговое окно подтверждения сохранения отображаться не должно. В противном случае отображается диалоговое окно подтверждения сохранения, и пользователь может выбрать, сохранять или нет.
В приведенном ниже коде диалоговое окно всегда показывалось, несмотря на условное onclick="if(#{conditionOK}). Я не хочу, чтобы диалоговое окно подтверждения отображалось, когда условиеOK возвращает false!!! После многих попыток я думаю, что FacesContext .isValidateFailed() не будет переоцениваться.
Пожалуйста помоги :(
Все, что я хочу, это только проверить, возвращает ли regex-Validator true. В этом случае должно быть показано диалоговое окно подтверждения.
Мой подход может быть неправильным. Большое спасибо, если у вас, ребята, есть и другие решения.
<h:form id="save_all_form">
<p:inputTextarea rows="1" style="width:100%;resize:none"
value="#{cusBean.saveAll}" autoResize="false"
validatorMessage="Wrong format">
<f:validateRegex pattern="#{msgs.pattern}" />
</p:inputTextarea>
<ui:param name="conditionOK"
value="#{facesContext.postback and !facesContext.validationFailed}" />
<p:commandButton value="#{msgs.button_overwrite_all}"
onclick="if(#{conditionOK}){confirmation.show()}"/>
</h:form>