1

JSR-303 Bean 検証制約と h:inputText タグの ajax フォールバック検証を組み合わせたクライアント側検証 (CSV) を使用しています。

ただし、CSV が合格し、ajax フォールバック検証が失敗した場合、検証メッセージがちらつきます。これは、最初にクライアント側がメッセージを削除し、その後の ajax 呼び出しでメッセージが再度追加されるためだと思います。これは、検証がトリガーされた場合に特に厄介です。<rich:validator event="keyup" />.

1 種類の検証のみが実装されている場合、メッセージはちらつきなく表示されます。

これは ajax キューの問題だと思いますが、<a4j:queue ignoreDupResponses="true"/>問題は解決しませんでした。

何か案は?ありがとう。


詳細に:

クライアント側の検証のために、注釈を追加しました

@Pattern(regexp = "^[\\w\\-]([\\.\\w])+[\\w]+@([\\w\\-]+\\.)+[a-zA-Z]{2,4}$", message = "Bad email")
private String email; 

検証 Bean で。

ajax フォールバック (サーバー側) 部分については、Bean メソッドを追加しました

public void validateEmail(FacesContext context, UIComponent toValidate, Object value) {

   ... // Check if email is already taken 

}

タグはこんな感じ

<h:inputText  id="registerFullname" value="#{registerPanelBean.email}" validator="#{registerPanelBean.validateEmail}">
   <rich:validator event="keyup"  />
</h:inputText>
<rich:message for="registerFullname">
</rich:message>
4

0 に答える 0