struts2学习笔记之十五(输入校验)
来源:互联网 发布:便携式打印机 知乎 编辑:程序博客网 时间:2024/06/06 02:10
输入校验
输入校验和类型转换相辅相成
提交String请求参数,首先是类型转换,再次验证数据的合理性,然后进一步处理分为客户端校验和服务器校验
客户端:js代码
服务器校验:java代码
客户端校验不能阻止恶意行为,决不能代替服务器校验
客户端也必不可少,由于大部分的浏览行为是正常行为,这样可以降低服务器的负担
两者必不可少。struts2的输入校验完全是模块化的方式
需要检验哪个Action
1、继承ActionSupport类
2、为该Action增加校验规则文件 —-struts2会自动加载该检验规则文件
3、校验规则文件的文件名应该是actionname-validation.xml(可以拷贝strtus2文件夹里的blank项目里的模板)
每个校验器对应一条校验规则
校验失败,会自动跳转到input的result,因此需要配置一个input的result
常用内置校验器(10个)
- required validator
- requiredstring validator
fieldname
trim - double validator
fieldName
minInclusive 最小值且包含最小值
maxInclusive
minExclusive 最小值但不包括最小值
maxExclusive - int validator
fieldName
min
max - stringlength validator
fieldName
maxLength
minLength - expression validator
可用于校验前后两次的输入密码是否相同
expression - the ONGL expression to be evaluated against the stack(Must evaluate to a Boolean) - regex validator
url,email校验器可以使用正则校验器代替 - date validator
格式要求太苛刻,不是很好
需要使用date的short格式 - email validator
- url validator
实例
需求:注册用户,使用内置校验器验证输入数据
1、jsp注册页面
<s:form action="RegisterAction"> <s:textfield name="user.name" label="用户名"/> <s:textfield name="user.pass" label="密码"/> <s:textfield name="user.weight" label="体重"/> <s:textfield name="user.birth" label="生日"/> <s:submit value="注册"/> </s:form>
2、RegisterAction类
package org.struts2.action;import com.opensymphony.xwork2.ActionSupport;public class Registe extends ActionSupport { /** * */ private static final long serialVersionUID = 1L; private User user; public User getUser() { return user; } public void setUser(User user) { this.user = user; } public String execute(){ //UserService业务类,内存仿真数据库 UserService us = new UserService(); int status = us.addUser(user); if(status == -1){ return ERROR; } return SUCCESS; }}
3、为action制作规则文件
注意:
- 文件名必须为actionname-validation.xml
- 文件头的写法如下,否则可能校验器不起作用,如果发现校验器不起作用,可以检查文件头的写法
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE validators PUBLIC "-//Apache Struts//XWork Validator 1.0.3//EN" "http://struts.apache.org/dtds/xwork-validator-1.0.3.dtd"><validators> <!-- 为待校验的属性设置校验规则 --> <field name="user.name"> <field-validator type="requiredstring" short-circuit="true"> <param name="trim">true</param> <message>姓名不能为空</message> </field-validator> </field> <field name="user.pass"> <field-validator type="requiredstring" short-circuit="true"> <param name="trim">true</param> <message>密码不能为空</message> </field-validator> </field> <field name="user.weight"> <field-validator type="double" short-circuit="true"> <param name="minInclusive">10.0</param> <param name="maxInclusive">90.0</param> <message>体重在10.0~90.0之间</message> </field-validator> </field> <field name="user.birth"> <field-validator type="required" short-circuit="true"> <message>生日不能为空</message> </field-validator> <field-validator type="date" short-circuit="true"> <message>生日格式是short形式</message> </field-validator> </field></validators>
4、配置input逻辑视图(struts.xml)
<package name="action" extends="struts-default"> <action name="RegisterAction" class="org.struts2.action.Registe"> <result name="input">/WEB-INF/content/register.jsp</result> <result type="chain">listUsers</result> </action> <action name="listUsers" class="org.struts2.action.usersListAction"> <result>/WEB-INF/content/usersList.jsp</result> </action> </package>
0 0
- struts2学习笔记之十五(输入校验)
- Struts2学习笔记之输入校验
- Struts2学习笔记之输入校验
- Struts2.x 学习笔记 之 输入校验
- Struts2学习笔记(三) 输入校验
- 输入校验---struts2学习笔记
- Struts2学习笔记----输入校验
- struts2学习之---输入校验
- Struts2学习笔记(十三) 输入校验(上)
- Struts2学习笔记(十四) 输入校验(下)
- Struts2.0学习笔记 — 输入校验(Validation)
- struts2学习笔记(5)——输入校验
- Struts2 入门学习笔记(四)——输入校验
- struts2学习笔记3-----输入校验
- Struts2学习笔记2--输入校验
- struts2 之 输入校验
- Struts2之输入校验
- 传智Struts2笔记(12)输入校验
- Unexpected end of ZLIB input stream
- java 从网络Url中下载文件
- CSS position属性
- 让模拟器显示中文输入法
- 通过cmd命令到ftp上下载文件
- struts2学习笔记之十五(输入校验)
- hdu 1505 City Game(dp)
- 构建iOS持续集成平台(一)——自动化构建和依赖管理
- hdu1796 How many integers can you find
- 求Fibonacci数列的循环节
- mysql分表的3种方法
- UIDevice 设备信息
- 多线程NSThread+主线程子线程
- UIViewContentMode