前端和后端验证
1.前端:用户体验
2.保证程序的安全性
================================验证框架==========================
登陆验证:
1.继承ActionSupport
2.调用validate()
3.配置struts.xml文件
validate() 有缺陷 --> 如,不能进行注册的特有验证
调用Action的任务方法时,validate()会默认执行,可以验证一些通用规则。
解决方案:
validateXxx():指定需要处理请求方法,【Xxx=指定处理请求的方法】
执行顺序:(与代码先后顺序无关)
validateXxx() --> validate() --> 方法
validate()或者validateXxx() 存在不足 --> 验证规则复杂,实现过程繁琐;Action类代码臃肿
解决方案:
使用Struts 2提供的验证框架
1.集成日常开发常用的数据校验功能
2.多种类型校验器的集合
校验器类型 校验器名称 说 明
必填校验器 required 字段不能为空
必填字符串校验器 requiredstring 字段值不能为空长度要大于0
整数校验器 int 字段的整数值的范围
字符串长度校验器 stringlength 字段值的长度的范围
正则表达式校验器 regex 字段是否匹配一个正则表达式
字段表达式校验器 fieldexpression 字段必须满足一个逻辑表达式
日期校验器 date 日期输入是否在指定的范围内
双精度校验器 double 字段值必须是双精度类型
3.步骤:
编写Action --> 配置Action --> 编写表单 --> 编写验证文件和校验规则
验证文件:
a.文件类型xml格式
b.命名规则:ClassName.validation(Action类名);ClassName.alias.validation(struts.xml中Action类名)
c.存放位置:与Action位于同一个包下
实现数据验证流程图:图片
================================国际化和本土化==========================
国际化(Internationalization:I18N)
使程序在不做任何修改的情况下,可以在不同国家或地区以及不同语言环境下,按照当地的语言和格式习惯显示字符
本地化(Localization:L10N)
一个国际化的程序,当它运行在本地机器时,能够根据本地机器的语言和地区设置显示相应字符
实现国际化思路:
1.将程序中的提示信息、错误信息等放在资源文件中,为不同国家和地区编写对应资源文件
2.资源文件由很多key-value组成,key保持不变,value随国家和地区不同而不同
3.这些资源文件使用共同的基名,通过在基名后面添加语言代码、国家和地区代码来进行区分
资源文件名 说 明
ApplicationResources_en.properties 所有英文语言的资源
ApplicationResources_zh.properties 所有的中文语言的资源
ApplicationResources_zh_CN.properties 针对中国大陆的、中文语言的资源
ApplicationResources_zh_HK.properties 针对中国香港的、中文语言的资源
ApplicationResources.properties 默认资源文件,如果请求的资源文件不存在,将调用它的资源进行显示
资源文件的范围:(查找顺序:Action --> package --> 全局)
1.全局资源文件
a.所有包的所有Action类都可以访问
b.导致资源文件变得非常庞大臃肿,不便于维护
2.包范围资源文件
a.对应包下创建package_language_country.properties
b.处于该包及子包下的action才可以访问该文件
3.Action范围资源文件
a.命名格式ActionClassName_language_country.properties
b.只有单个Action可以访问
validate() 有缺陷
转发本鞥是redirect
OGNL与EL不能混用