我需要验证表单中的两个字段:电子邮件和名称。电子邮件应与patern a.a@x.x匹配,名称应仅包含字母。
我有custom-faces-messages.properties,当模式不匹配时我需要显示的消息。
javax.faces.validator.RegexValidator.NOT_MATCHED = {1}:验证 错误:值不符合模式“{0}”
然而,我想以非常丑陋的方式显示模式而不是{0},而是希望为每次验证显示自定义文本。名称的前缀应为“姓名只能包含字母”,电子邮件中的电子邮件与模式不符。例a.a@x.x'
有没有办法使用属性文件?
提前谢谢。
答案 0 :(得分:2)
如果您的电子邮件和名称字段已实施为h:inputText
,那么您可以使用validator
和validatorMessage
属性来实现此目的。请参阅JSF VDL document。
第二种(更复杂)方式:创建自己的验证器。我有自己的电子邮件验证工具,我在这样的应用程序中调用它:
<h:inputText id="email" label="#{msg.email}"
value="#{registrationForm.email}"
size="40" maxlength="80" required="true">
<f:converter converterId="lowerCase" />
<f:validator validatorId="email-validator" />
</h:inputText>
第三种方式:在支持bean中检查它并显示你想要的消息。
答案 1 :(得分:0)
是的,有一种方法可以从属性文件中调用它。 我这样做。在项目的properties包下创建一个message.properties文件。 (我的路径是:src / main / bla.bla.bla / bean / properties / message.properties)
现在;
/src/main/webapp/WEB-INF/faces-config.xml编辑此文件。 添加以下行
<application>
your.src.bla.properties.message (this is path to message.properties file)
</application>
(your.src.bla.properties.message)不要将properties.message部分更改为反向。
并将此行添加到message.properties文件:
javax.faces.validator.RegexValidator.NOT_MATCHED="Your message comes here"
现在停止并启动您的项目,因为它可能没有热插拔。 你会在对话框中看到你的消息,弹出屏幕的右上角。