我正在尝试一个简单的JSF应用程序,我需要检查"name"字段是否为空,然后显示错误消息.
获取字段值的代码是:
<h:outputLabel value="Name"/>
<h:inputText value="#{greeting.name}" required="true">
<f:validator validatorId="NumValidator"/>
</h:inputText>
Run Code Online (Sandbox Code Playgroud)
如果在没有输入任何内容的情况下提交字段,则程序的控制不会进入验证器类,并且它会显示默认错误消息:
j_id_jsp_869892673_1:j_id_jsp_869892673_4:验证错误:值是必需的.
如何为此显示自定义消息?
Rom*_*las 20
该Message.properties文件存储了默认验证消息.该文件包含在JSF实现库的JAR中.
如果您查看此文件的内容,关于所需的验证,您将看到:
javax.faces.component.UIInput.REQUIRED={0}: Validation Error: Value is required.
Run Code Online (Sandbox Code Playgroud)
要定义自己的错误消息,请创建新的属性文件,添加适当的错误消息,例如:
javax.faces.component.UIInput.REQUIRED=Hey, you forgot to fill the input {0}!
Run Code Online (Sandbox Code Playgroud)
(注意{0}将被字段的ID替换)
然后,在你的faces-config.xml,定义一个新的message-bundle:
<message-bundle>package.that.contains.the.properties.file</message-bundle>
Run Code Online (Sandbox Code Playgroud)
因此,例如,如果您my-messages.properties存储在foo/bar包中,则必须编写:
<application>
...
<message-bundle>foo.bar.my-messages</message-bundle>
</application>
Run Code Online (Sandbox Code Playgroud)
(请注意,您不必指定.properties扩展名)
| 归档时间: |
|
| 查看次数: |
15944 次 |
| 最近记录: |