Zatwierdź dane wejściowe zgodnie z wymaganiami tylko po naciśnięciu określonego przycisku polecenia

Mam konkretny przypadek użycia dla walidacji JSF. Na przykład maminputText pole:

<p:inputText id="input" required="#{myBean.required}" value="#{myBean.value}" maxlength="20" disabled="#{myBean.disabled}">
  <p:ajax event="blur" process="@this" update="name" listener="#{myBean.listener}"/>
</p:inputText>

Wartością wejściową jest liczba (w niektórych przypadkach może to być także łańcuch, ponieważ jest to część komponentu złożonego, ale problem jest lepiej opisany, jeśli założymy, że jest to liczba). Ten wpis jest częścią formularza, na końcu formularza mam przycisk wysyłania:

<p:commandButton value="Save" actionListener="#{myBean.save}"/>

Jakie są moje prośby:

Po naciśnięciu przycisku wysyłania wszystkie walidacje powinny zostać przetworzone i to jest OK, to działa dobrze.Gdy zdarzenie rozmycia jest uruchamiane w polu wejściowym, jeśli pole nie jest puste, należy przetworzyć poprawność liczby, a to również jest OK. Na koniec aktualizuję pole o identyfikatorzename z pewną wartością.Teraz mam problem. Moja trzecia prośba dotyczy sytuacji, gdy dane wejściowe są puste. Sprawdzanie poprawności na wejściu nie powinno być przetwarzane. To specjalny przypadek, w którym wyczyszczę pole o identyfikatorzename. Ma to również miejsce, gdy usuwam tekst, który został już wprowadzony na wejściu, usuwam fokus ze składnika (na przykład naciśnij klawisz TAB) iw takim przypadku należy również przetworzyć żądanie AJAX, a dane wejściowe zostaną również usunięte.

W jaki sposób mogę wyłączyć sprawdzanie poprawności tego pola wejściowego w przypadku, gdy jest puste, a tylko dla tego zdarzenia ajax?

questionAnswers(2)

yourAnswerToTheQuestion