Wicket 1.5-EmailTextField:accept";加上;符号

Wicket 1.5-EmailTextField:accept";加上;符号,wicket,email-validation,wicket-1.5,Wicket,Email Validation,Wicket 1.5,我在wicket 1.5应用程序中使用EmailTextField来记录用户。根据GMail别名,电子邮件中可能有+符号,但wicket不允许。有没有一种方法可以接受验证器中的额外符号?我认为您必须像这样覆盖HTML5验证:,组件只将输入类型设置为电子邮件,我认为它不会添加任何wicket验证。如果您不想添加js覆盖,最好是为wicket文本字段创建自己的验证程序。您必须编写自己的验证程序: public class GMailAddressValidator extends PatternVa

我在wicket 1.5应用程序中使用EmailTextField来记录用户。根据GMail别名,电子邮件中可能有+符号,但wicket不允许。有没有一种方法可以接受验证器中的额外符号?

我认为您必须像这样覆盖HTML5验证:,组件只将输入类型设置为电子邮件,我认为它不会添加任何wicket验证。如果您不想添加js覆盖,最好是为wicket文本字段创建自己的验证程序。

您必须编写自己的验证程序:

public class GMailAddressValidator extends PatternValidator {

    public GMailAddressValidator() {
        super("^[_A-Za-z0-9-+]+(\\.[_A-Za-z0-9-+]+)*@[A-Za-z0-9-]+(\\.[A-Za-z0-9-]+)*((\\.[A-Za-z]{2,}){1}$)",
                Pattern.CASE_INSENSITIVE);
    }
}
在这里,我只是在原来的Wicket regexp中添加了两个用于验证电子邮件的加号(尝试用粗体突出显示加号):

^[U A-Za-z0-9-+]+(\\.[U A-Za-z0-9-+])*@[A-Za-z0-9-]+(\\.[A-Za-z0-9-]+)*(\\.[A-Za-z]{2,}{1}$)

之后,您可以在验证器中使用SimpleTextField,而不是EmailTextField。就像这样:

new TextField<String>("email").add(new GMailAddressValidator())
newtextfield(“email”).add(新的GMailAddressValidator())