我正在尝试使用validation in Spring.NET来验证类的字符串属性是否是格式正确的电子邮件地址。我找到了EmailValidator类(source,documentation),但我不确定在我的课程中实际使用它所需的语法。
我正在尝试这个:
<v:email id="validate.myClass.MailFrom" test="MailFrom">
<v:message id="myClass.MailFrom" providers="myClassProvider"/>
</v:email>
但是我收到了错误:
名称空间“http://www.springframework.net/validation”中的元素“group”在名称空间“http://www.springframework.net/validation”中具有无效的子元素“email”。预期可能元素的列表:'名称空间'http://www.springframework.net/validation'中的'validator,required,condition,regex,ref,collection,group,any,exclusive'。
包含EmailValidator的相同命名空间还包含ConditionValidator,RegularExpressionValidator等,它们似乎对应于允许的子元素。对于EmailValidator来说,情况似乎并非如此。我错过了什么?
答案 0 :(得分:2)
尝试类似
的内容<v:validator test="MailFrom"
type="Spring.Validation.Validators.EmailValidator, Spring.Core">
<v:message id="myClass.MailFrom" providers="myClassProvider"/>
</v:validator>
电子邮件验证程序是自定义验证程序,这意味着您必须指定其类型。在xml配置中,您使用验证器标记作为您自己的自定义验证器。见http://www.springframework.net/doc-latest/reference/html/validation.html#d4e3643。我对命名空间中具有自己的XML元素的其他验证器类有所了解。也许电子邮件验证程序被认为太具体而无法保证自己的XML元素?