struts2-4框架校验
struts2验证框架
1、进行服务器端的数据校验
2、输入校验的分类
(1)手工校验
-
编码校验的正确与否
-
手工校验的步骤
1)编写action类继承actionSurport
2)重写validate方法,对所有的执行方法进行校验,对执行方法校验时方法名为validate+方法名,eg.validateSave
3)在struts.xml文件中配置校验错误转发的页面
<result name="input">转发的目标路径</result>
4)在jsp页面中使用struts标签显示错误信息
<s:fielderror fieldName="字段名">
1. public String save(){ ServletActionContext.getRequest().getSession().setAttribute("us", us); path="show_User"; return "ok"; } public String show(){ path="show.jsp"; return "ok"; } 2. public String save(){ ServletActionContext.getRequest().getSession().setAttribute("us", us); path="show.jsp"; return "ok"; } 第一个与第二个,当使用第一个时要使用validateSave()方法 当使用第二个时要使用validate()方法
xml文档校验
步骤:
1)编写验证的xml文件
action类-action访问路径名-validate.xml
例如:只验证save方法的访问路径
UserAction-save_User-validation.xml
2)重写validate方法,对所有的执行方法进行校验,对执行方法校验时方法名为validate+方法名,eg.validateSave
3)在struts.xml文件中配置校验错误转发的页面
验证文件如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.3//EN" "http://www.opensymphony.com/xwork/xwork-validator-1.0.3.dtd">
<validators>
<field name="us.name">
<field-validator type="requiredstring">
<param name="trim">true</param>
<message>用户名不能为空!</message>
</field-validator>
</field>
<field name="us.pwd">
<field-validator type="requiredstring">
<param name="trim">true</param>
<message>密码不能为空!</message>
</field-validator>
<field-validator type="stringlength">
<param name="minLength">6</param>
<param name="trim">true</param>
<message><![CDATA[密码长度不能少于6个字符]]></message>
</field-validator>
</field>
<field name="us.tel">
<field-validator type="requiredstring">
<param name="trim">true</param>
<message>电话不能为空!</message>
</field-validator>
<field-validator type="regex">
<param name="expression"><![CDATA[^1[358]\d{9}$]]></param>
<message>手机号格式不正确!</message>
</field-validator>
</field>
</validators>
自动走这个xml文件,但是要注意此时的
<s:fielderror fieldName="name"></s:fielderror><br>
fieldName要为us.name与xml文件中的一致,并且跟对象保持关系
国际化
1、概念:
页面静态文本转为不同的国家语种信息
2、国际化I18N,本地化L10N
3、步骤:
(1)准备资源文件
xxx_国家语种_国家代码.properties
例如:
msg_zh_CN.properties
msg_en_US.properties
(2)在struts.xml文件中配置
(3)在jsp页面使用
<s:text name="键名"/>呈现各种语种信息
<s:text name="name">替换用户名
注意
Attribute "calss" must be declared for element type "action".
出错提示上述内容可能情况:
1.这里是class拼写错误
2.将属性误写
if(us.getName()==null||us.getName().trim().equals("")){
addFieldError("name", "用户名错误");
return;
}
用户名:<s:textfield name="us.name"/>
<s:fielderror fieldName="name"></s:fielderror><br>
其中的addFieldError("name", "用户名错误");和 <s:fielderror fieldName="name"></s:fielderror><br>的name要一致,才能在界面显示提示的信息