简单校验
对于通过IoVC绑定的组件属性,可以通过在绑定属性上加上校验器标注的方式来请求校验。OperaMasks预定义了一些常用的校验器标签:
@Required. 声明一个域或Bean属性必须具有输入值。
@ValidateDoubleRange. 检验一个浮点数取值是否在指定范围中。
@ValidateLongRange. 检验一个整型数取值是否在指定范围中。
@ValidateLength. 检验一个字符串的长度是否在指定范围中。
@ValidateRegexp. 检验一个字符串是否可以匹配指定的正则表达式。(OperaMasks提供了一个工具类org.operamasks.faces.validator.CommonRegexpPatterns,列出了一些常用的校验正则表达式)
例如,如果希望用户输入的数值不能为空,只需要在LiteBean中写:
@Bind //绑定页面中id为first的w:textField
@Label("数值一:")
@Required
private double first = 22.0;
@Bind
@Label("数值二:")
@Required //绑定页面中id为second的w:textField
private double second = 7.0;
对应页面代码
<w:form id="calc">
<layout:panelGrid columns="3">
<h:outputLabel for="first"/>
<w:textField id="first"/>
<h:message for="first"/>
<h:outputLabel for="second"/>
<w:textField id="second"/>
<h:message for="second"/>
<h:outputLabel for="result"/>
<h:outputText id="result"/>
</layout:panelGrid>
<br/>
...
</w:form> | 子组件将以每三个为一行的形式排列; |
| id为first的文本框的标题; |
| id为first的文本框; |
| 当id为first的文本框校验出错时所显示的校验信息。 |
则当页面提交后,服务器会渲染出错提示信息:
OperaMasks预定义的校验器默认提示信息支持国际化,在英文环境下,提示效果为:
校验器标注支持定义多语言的提示信息(关于多语言支持的详细信息可参考国际化章节)。在以下properties文件中加入多语言键值:
demo/LocalStrings_zh_CN.properties
#demo.LocalStrings_zh_CN.properties
CalcBean.firstRangeErrMessage=该数值必须位于10至100之间
demo/LocalStrings_en_US.properties
#demo.LocalStrings_en_US.properties
CalcBean.firstRangeErrMessage=This number must be between 10 to 100
其中demo是LiteBean所在package的目录。
@LocalString
private Map<String,String> messages;
@Bind //绑定页面中id为first的w:textField
@Label("数值一:")
@Required
@ValidateDoubleRange(minimum=10, maximum=100, message="
#{
this.messages.firstRangeErrMessage}")
private double first = 22.0;
| 读入多语言文件键值。 |
| 指定使用浮点数范围校验器。同一个绑定属性上允许使用多个校验器。 |
| 错误提示信息内容。注意在message中,我们也可以嵌入 EL表达式的。 |
| IoVC扩展了在LiteBean中所使用的EL表达式,允许使用this标识符引用当前对象。 |
在中文环境下运行结果如图: