Shale通过内部集成Jakarta Commons Validator Framework的方式支持以下几种验证:
- Credit Card
- Date
- Generic
- ISBN
- URL
1、下载Shale Framework(http://svn.apache.org/dist/struts/shale/v1.0.0/),将shale-core-1.0.4.jar和shale-validator-1.0.4.jar加入到项目的libraries中。
2、复制org.apache.shale.validator中message.properties中内容并汉化到自己项目的properties文件:
如:errors.required={0} is required.修改为
errors.required= {0} /u662F/u5FC5/u586B/u9879/uFF0C/u4E0D/u80FD/u4E3A/u7A7A
获得汉字的16进制编码可借鉴下面函数:
public
static
void
main(String[] args)
...
{
String s = "是必添字段!";
String reslt = "";
for (int j = 0; j < s.length(); j++) ...{
char ch = s.charAt(j);
int i = ch;
reslt += "/u";
reslt += Integer.toHexString(i);
}
System.out.println(s + " unicode is: " + reslt);
}
String s = "是必添字段!";
String reslt = "";
for (int j = 0; j < s.length(); j++) ...{
char ch = s.charAt(j);
int i = ch;
reslt += "/u";
reslt += Integer.toHexString(i);
}
System.out.println(s + " unicode is: " + reslt);
}
3、JSF页面使用:
导入标签库
<%
@ taglib uri
=
"
http://shale.apache.org/core
"
prefix
=
"
v
"
%>
定义js验证函数名
<
v:validatorScript
functionName
="validateForm"
/>
以下是几种简单常用验证的举例,复杂的例子请查阅Shale的帮助文档:
//必填项验证
<
t:inputText
value
="#{aBean.id}"
maxlength
="20"
>
< v:commonsValidator type ="required" arg ="#{msgs.fieldname}" server ="true" client ="true" />
</ t:inputText >
< v:commonsValidator type ="required" arg ="#{msgs.fieldname}" server ="true" client ="true" />
</ t:inputText >
//日期验证
<
t:inputText
value
="#{aBean.date}"
>
< v:commonsValidator type ="date" arg ="#{msgs.fieldname}" server ="true" client ="true" datePatternStrict ="yyyy-MM-dd" />
</ t:inputText >
< v:commonsValidator type ="date" arg ="#{msgs.fieldname}" server ="true" client ="true" datePatternStrict ="yyyy-MM-dd" />
</ t:inputText >
//数字验证
<
t:inputText
value
="#{aBean.length}"
>
< v:commonsValidator type ="integer" arg ="#{msgs.fieldname}" server ="true" client ="true" />
</ t:inputText >
< v:commonsValidator type ="integer" arg ="#{msgs.fieldname}" server ="true" client ="true" />
</ t:inputText >
利用commandButton的onclick事件执行验证:
<
t:commandButton
value
="save"
action
="#{aBean.saveInfo}"
onclick
="return validateForm(this.form);"
/>