【发布时间】:2012-01-10 16:41:44
【问题描述】:
我正在制作一个简单的表单,其中包含一个实现 Bean 验证的输入字段。所有的验证工作正常。问题是当用户输入非数值时呈现的消息(或缺少呈现):
如果我在 Bean 中使用 @Pattern 检查,当用户输入非数值时,视图中不会显示警告消息。
-
如果我从 Bean 中删除 @Pattern,当用户输入非数字值时会显示以下警告消息:
“j_idt8:age: 'some string' debe ser un número entre -2147483648 y 2147483647. Ejemlo: 9346”
翻译为:“j_idt8:age: 'some string' 必须是介于 -2147483648 和 2147483647 之间的数字。例如:9346”。
我有什么遗漏吗?有没有办法实现一个简单的消息警告?或者是否有自定义默认消息:“j_idt8:age: 'some string' debe ser un número entre -2147483648 y 2147483647. Ejemlo: 9346”?
这些是一些代码摘录,如果您需要它们:
web.xml
<context-param>
<description>JSF will interpret empty strings submitted values as null</description>
<param-name>javax.faces.INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULL</param-name>
<param-value>true</param-value>
</context-param>
用户 Bean:
@NotNull(message = "Please enter your age")
@Pattern(regexp = "[0-9][0-9]", message = "Age must be numeric")
@Max(99)
@Min(18)
private Integer age;
小脸:
<h:form>
Enter your age:<br/>
<h:inputText id="age" value="#{user.age}">
<f:ajax event="blur" render="ageMessage" />
</h:inputText>
<h:message id="ageMessage" for="age" /><br/>
<h:commandButton value="Insert" action="#{user.showChoice}">
<f:ajax execute="@form" render="@form" />
</h:commandButton>
</h:form>
【问题讨论】:
标签: jsf-2 bean-validation