fre*_*dev 5 jsf message numbers converter jsf-2
我有一个映射到Long属性的输入文本.
private Long length;
Run Code Online (Sandbox Code Playgroud)
<h:inputText value="#{bean.length}" />
Run Code Online (Sandbox Code Playgroud)
当我在输入文本中输入非数字时,我收到以下转换错误:
myForm:myField:'someText'必须是由一个或多个数字组成的数字.
我想知道如何自定义此消息:
长度必须是大于零的数字.
无论是使用输入组件的converterMessage属性:
<h:inputText converterMessage="length must be a number greater than zero" />
Run Code Online (Sandbox Code Playgroud)
(并且不要忘记使用<f:validateLongRange>以防止用户输入负值并提供validatorMessage!)
或者在类路径中创建一个属性文件,该文件将覆盖内置JSF的默认消息LongConverter:
javax.faces.converter.LongConverter.LONG = length must be a number greater than zero
Run Code Online (Sandbox Code Playgroud)
并已注册为消息包faces-config.xml:
<application>
<message-bundle>com.example.CustomMessages</message-bundle>
</application>
Run Code Online (Sandbox Code Playgroud)
上面的示例假定文件名CustomMessages.properties已经放在com.example包中.您可以将其命名并放置在任何您想要的位置.
您可以在JSF规范的javax.faces.converter.LongConverter.LONG第2.5.2.4章中找到所有消息键的概述,以及它们的默认值,这也是本答案中的复制品.