简单校验

对于通过IoVC绑定的组件属性,可以通过在绑定属性上加上校验器标注的方式来请求校验。OperaMasks预定义了一些常用的校验器标签:

  • @Required. 声明一个域或Bean属性必须具有输入值。

  • @ValidateDoubleRange. 检验一个浮点数取值是否在指定范围中。

  • @ValidateLongRange. 检验一个整型数取值是否在指定范围中。

  • @ValidateLength. 检验一个字符串的长度是否在指定范围中。

  • @ValidateRegexp. 检验一个字符串是否可以匹配指定的正则表达式。(OperaMasks提供了一个工具类org.operamasks.faces.validator.CommonRegexpPatterns,列出了一些常用的校验正则表达式)

例如,如果希望用户输入的数值不能为空,只需要在LiteBean中写:

@Bind  //绑定页面中id为first的w:textField
@Label("数值一:")
1@Required
private double first = 22.0;

@Bind
@Label("数值二:")
2@Required  //绑定页面中id为second的w:textField
private double second = 7.0;

对应页面代码

<w:form id="calc">
      <layout:panelGrid columns="3">1
        <h:outputLabel for="first"/>2
        <w:textField id="first"/>3
        <h:message for="first"/>4
        <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>
1 子组件将以每三个为一行的形式排列;
2 id为first的文本框的标题;
3 id为first的文本框;
4 当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的目录。

1@LocalString
private Map<String,String> messages;

@Bind  //绑定页面中id为first的w:textField
@Label("数值一:")
@Required
2@ValidateDoubleRange(minimum=10, maximum=100, message="3#{4this.messages.firstRangeErrMessage}")
private double first = 22.0;
1 读入多语言文件键值。
2 指定使用浮点数范围校验器。同一个绑定属性上允许使用多个校验器。
2 错误提示信息内容。注意在message中,我们也可以嵌入 EL表达式的。
3 IoVC扩展了在LiteBean中所使用的EL表达式,允许使用this标识符引用当前对象。

在中文环境下运行结果如图:

[上一页] [下一页]