struts2中的校验信息,如果发生不能转换,如将字母转换成数字,将发生转换异常。
struts2内置的转换异常提示信息是英文的,如:
Invalid field value for field "age".
如何将他转换成中文的?
比如,工程中src/com.xie.struts2.action目录下有个注册的RegisterAction.java
要对RegisterAction.java中的转换异常提示信息变成中文的,就要在RegisterAction.java的同一目录下,新建一个RegisterAction.properties文件。里面写上:
invalid.fieldvalue.age=年龄必须为整数
invalid.fieldvalue.birthday=出生日期必须为日期格式
invalid.fieldvalue.grduation=毕业日期必须为日期格式
写完后保存,但是properties本身是不支持中文的,也就是说不能保存有中文的文件。
那该怎么办呢?呵呵,这时别忘了,jdk中有个命令可以把中文转化成ASCII码格式。
打开JDK安装目录的bin目录下有个native2ascii命令,用它来把中文转成ASCII码。
可以在该目录下,目录随便都行,新建一个text.txt文件,名字也是随便,把RegisterAction.properties
里面的代码复制到刚刚新建的文件中,这样就可以保存了。然后用native2ascii命令进行转码,在开始,运行,输入cmd进入命令行,转到text.txt文件所在的目录,然后输入:native2ascii text.txt RegisterAction.properties进行转码,转码成功后,把新生成的RegisterAction.properties文件拷贝到,你工程RegisterAction.properties所对应的目录下,覆盖掉旧的RegisterAction.properties这个文件即可。
打开RegisterAction.properties,你看到里面的中文已经转码了:
invalid.fieldvalue.age=\u5e74\u9f84\u5fc5\u987b\u4e3a\u6574\u6570
invalid.fieldvalue.birthday=\u51fa\u751f\u65e5\u671f\u5fc5\u987b\u4e3a\u65e5\u671f\u683c\u5f0f
invalid.fieldvalue.grduation=\u6bd5\u4e1a\u65e5\u671f\u5fc5\u987b\u4e3a\u65e5\u671f\u683c\u5f0f
这时你再进行测试,提示信息就不再是Invalid field value for field "age".了,而是年龄必须为整数。即你转码后的中文。
该贴由koei123转至本版2015-6-1 14:53:33