Struts2学习笔记7:Struts2输入校验续一

来源:互联网 发布:9.9元包邮软件 编辑:程序博客网 时间:2024/05/22 16:49

Struts2学习笔记7:Struts2输入校验续一

记录内容:struts2第六讲

1.使返回页面显示原来输入的内容

设置text标签的value属性为"${requestScopr.属性名}",如果不将双引号则显示为“/”。

说明:以上设置在form表单中使用,对于struts2的标签库已经内置。

2.直接打开项目所在目录

在MyEclipse中,项目名点击右键,MyEclipse——Open In Excplorer

3.中文转换成Unicode码

JDK中自带了一个工具 native2ascii.exe,在cmd中打开

有两种转换方式:

(1)先输入native2ascii在输入要进行转换的字符串,回车

(2)输入native2ascii 要进行代码转换的文件名 保存转换后的文件名

4.A configuration error occurred during startup. Please verify the

 Preference field with the prompt; Cannot find a free socket for the

 debugger错误的解决方法

 超级简单:关闭防火墙,让防火墙允许javaw.exe访问网络。

本节主要学习内容:自定义错误显示信息

自定义错误信息分为两种

1)全局性

 在struts.xml文件,struts标签中添加

<constant name="struts.custom.i18n.resources" value="message">

</constant>

说明:constant表示常量用于替换掉struts2的内置错误提示信息。

name="struts.custom.i18n.resources" 固定不变的

value="message" 可以是任意的对应于新建的message.properties文件名

 新建     message.properties文件于src目录中,写入内容

#xwork.default.invalid.fieldvalue={0} error

#Below is the importation of the Chinese Unicode encoding

#Unicode encoding can verify the information shows that  the  Chinese

xwork.default.invalid.fieldvalue={0} /u8f93/u5165/u9519/u8bef

说明:解释下红色标记的语句含义:在整个项目中,当属性类型转换出问题时,调用 属性名+“error”,也可以设置中文,不过需要用Unicode编码

 2)局部性 注:局部性错误校验的优先级高于全局性错误验证的优先级

 与要进行验证的类位于相同目录下,命名格式:

类名(不用加包名).Properties

我要进行验证的类为 RegisterAction.Class,所以新建配置文件名为

RegisterAction.Properties,输入内容

invalid.fieldvalue.age = age converter error

说明:age为要进行校验的字段,当age字段发生类型转换错误的时候,则显示“age

 converter error”,显示错误可以是中文,不过依旧需要进行Unicode编码转换, 方法同上,下面几行是我设置的提示信息。

invalid.fieldvalue.age =  /u5e74/u9f84/u8f93/u5165/u9519/u8bef/u3002

invalid.fieldvalue.birthday =  /u65e5/u671f/u683c/u5f0f/u8f93/u5165/u4e0d/u6b63/u786e/u3002

invalid.fieldvalue.graduation =  /u65e5/u671f/u683c/u5f0f/u8f93/u5165/u4e0d/u6b63/u786e/u3002

下面是老师的笔记:

遇到类型转换错误的时候(也就是说不能进行类型转换),struts2框架自动生成一条错误信息,并且将该错误信息放到addFieldError里面

类型转换与输入校验的流程

先进行类型转换,再进行输入校验

1. 首先Struts2对客户端传来的数据进行类型转换

2. 类型转换完毕后再进行输入校验

3. 如果类型转换和输入校验都没有错误发生,那么进入execute方法(调用商业逻辑)

注意:如果类型转换不成功,也同样要进行输入校验