ITEEDU

Struts Gossip: Validator 讯息管理

Validator框架预设使用Struts讯息资源中的key-value讯息,您可以查看struts- blank中的application.properties,当中有关于validator讯息的部份就是Validator预设使用的:
# -- validator -- 
errors.invalid={0} is invalid. 
errors.maxlength={0} can not be greater than {1} characters. 
errors.minlength={0} can not be less than {1} characters. 
errors.range={0} is not in the range {1} through {2}. 
errors.required={0} is required. 
errors.byte={0} must be an byte. 
errors.date={0} is not a date. 
errors.double={0} must be an double. 
errors.float={0} must be an float. 
errors.integer={0} must be an integer. 
errors.long={0} must be an long. 
errors.short={0} must be an short. 
errors.creditcard={0} is not a valid credit card number. 
errors.email={0} is an invalid e-mail address.
    
Struts支持国际化讯息,Validator同样也支持国际化讯息,您可以在<formset>上使用language、country 等属性来指定所要使用的国际化讯息,当然您必须为每一个国际化讯息提供对应的讯息资源文件:
<formset> 
.... 
</formset> 
<formset language="zh"> 
.... 
</formset>
每一个<formset>相对于一个讯息对应,language设定为zh,表示使用application_zh.properties檔 案中的讯息,如果没有设定,就使用预设的Locale设定。

Validator预设会使用一些key-value讯息对应,您也可以使用自订的讯息来显示验证讯息,例如:
validation.xml
... 
<form name="userForm">
<field
property="name"
depends="required,mask">
<msg
name="mask"
key="logon.username.maskmsg"/>
<arg0 key="logon.username.displayname"/>
<var>
<var-name>mask</var-name>
<var-value>^[a-zA-Z0-9]*$</var-value>
</var>
</field>
</form>
...
假如您在application.properties中有这么一个key-value对应:
logon.username.maskmsg={0} must be letters and numbers, no spaces.

则这个讯息会替换errors.invalid中的讯息(mask验证器预设查找的key-value对应),此时< arg0>会替换{0}中的部份,当然logon.username.displayname在application.properties中也 必须有设定。