在Struts 动态校验框架中校验UNICODE的问题
来源:互联网 发布:多益网络面试通过率 编辑:程序博客网 时间:2024/04/30 22:58
想要使用UNICODE校验汉字,未成功。在validate中指定UNICODE(例如/u0030)时,并不像想像中可以检测出UNICODE对应的字符。
validate.xml:
<field property="did" depends="required,mask">
<msg name="required" key="menuForm.test.required" resource="true"/>
<msg name="mask" key="menuForm.test.mask" resource="false"/>
<var>
<var-name>mask</var-name>
<var-value>^[/u0030]*$</var-value>
</var>
</field>
运行效果:
u、0、3均可以通过校验。
原因:
org.apache.struts.validator.FieldChecks.FieldChecks的validateMask()在读取validate.xml中的正则表达式的时候,将UNICODE读取成了String。因此,在调用 org.apache.commons.validator.GenericValidator的matchRegexp()方法进行校验时,u、0、3均可以通过校验。 奇怪的是“/”或是“//”都无法通过校验。
if (regexp == null || regexp.length() <= 0) ...{
return false;
}
Perl5Util matcher = new Perl5Util();
System.out.println("Before match regexp:[" + regexp + "]");
System.out.println("Before match value:[" + value + "]");
System.out.println(matcher.match("/" + regexp + "/", value));
return matcher.match("/" + regexp + "/", value);
}
运行结果:
Before match regexp:[^[/u0030]*$]
Before match value:[u]
true
String value = "u";
String regexp = "^[0]*$";
Perl5Util matcher = new Perl5Util();
System.out.println("Before match regexp:[" + regexp + "]");
System.out.println("Before match value:[" + value + "]");
System.out.println(matcher.match("/" + regexp + "/", value));
}
运行结果:
Before match regexp:[^[0]*$]
Before match value:[u]
true
网上还有人说UNICODE只在*.properties 文件中好用,而在 *.XML文件中不好用(including UNICODE
codes was only possible in *.properties files, not in *.XML)。 ??
还有,You have to declare unicode characters using character entities in xml.
结论,不能使用validate.xml来进行UNICODE的校验。
- 在Struts 动态校验框架中校验UNICODE的问题
- Struts 2的校验框架
- struts中validate校验框架maxlength校验错误解决
- struts动态校验
- struts校验框架
- struts validate校验框架
- Struts中的校验框架
- struts中的校验框架
- 【Struts】--Struts2校验框架
- struts校验框架
- 关于在SSH环境下struts校验遇到的问题
- 在eclipse中使用struts的regex校验器不起作用
- 改进struts表单校验的框架
- Struts 2框架的输入校验
- Struts 的数据校验和验证框架
- Struts 的数据校验和验证框架
- struts校验框架的一个异常
- Struts框架的数据校验类型
- 35岁前成功的12条黄金法则
- 旅游指南之二十----三岳壶口八日自助游行程介绍
- 旅游指南之二十----景点评述
- 全国省市县无刷新多级关联菜单
- 我--曾经的C语言痴迷者,就算C死了,也永远活在我心里
- 在Struts 动态校验框架中校验UNICODE的问题
- 《C++程序设计语言(特别版)》忠告(advice)部分
- 开篇
- 如何在ASP.NET中使用JavaScript脚本
- windows下文件上传
- 读写应用程序配置文件app.config
- 女人不再爱男人的10种表现
- 掌控上传进度的Ajax Upload
- DriectDrow 用法(窗口模式)