ユーザーの電子メールが無効であると思われる場合は警告しますが、必要に応じてユーザーが電子メールを送信できるようにします。私が読んだように、確認メッセージを送信する以外に電子メールを検証する簡単な方法はありませんが、Gmailの後に「.com」を付けるのを忘れているという愚かな間違いについて彼に警告したいと思います。
私はJSFを使用していますが、コードは次のようになります。
XHTML
<h:inputText id="email"
required="true" requiredMessage="Required field"
value="#{signupBean.email}">
<f:ajax
event="valueChange"
listener="#{signupBean.validateEmail}"/>
</h:inputText>
<h:message for="email"/>
SignupBean
public void validateEmail(AjaxBehaviorEvent event){
if (email != null && !email.matches(emailRegex)){
String id = event.getComponent().getClientId();
FacesMessage msg = new FacesMessage(FacesMessage.SEVERITY_WARN, "Your e-mail seems invalid", "Did you miss the '@' or '.com'?");
FacesContext.getCurrentInstance().addMessage(id, msg);
}
}
そのままでは、メッセージは失われ、警告ログとして表示されます。id
表示されるのはですがj_id_f:email
、としてハードコーディングすると機能しませんemail
。また、action
の代わりにを使ってみましlistener
たが、メソッドが呼び出されません!
それが進むべき道であるか、またはJSFだけでそのような「弱い」検証を行う方法があるかどうか、私はいくつかのアドバイスが欲しいです。私は純粋なJSFを使用していますが、拡張機能の使用を検討します。