如果他的电子邮件似乎无效,我想警告用户,但如果他愿意,仍然允许他提交电子邮件。正如我所读到的,除了发送确认消息之外,没有简单的方法来验证电子邮件,但我仍然想警告他一些愚蠢的错误,因为忘记在 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"/>
注册豆
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,但会考虑使用扩展。