class17struts2(高级)精编版.pptx
《class17struts2(高级)精编版.pptx》由会员分享,可在线阅读,更多相关《class17struts2(高级)精编版.pptx(29页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Struts2(高级)(高级)讲解人:王英伟 讲解时间:60min23Struts2介绍4Struts2的处理流程StrutsPrepareAndExecuteFilterInterceptorActionResultJsp/html响应用户请求Struts2内置的一些拦截器或用户自定义拦截器5自定义拦截器要自定义拦截器需要实现com.opensymphony.xwork2.interceptor.Interceptor接口:public class PermissionInterceptor implements Interceptor public String intercept(Act
2、ionInvocation invocation)throws Exception Object user=ActionContext.getContext().getSession().get(user);if(user!=null)/调用此方法,拦截执行。return invocation.invoke();ActionContext.getContext().put(message,你没有权限执行操作);return“index;6 7输入校验采用手工编写代码实现。基于XML配置方式实现。8手工编写代码方式(全方法)public void validate()if(this.userna
3、me=null|(this.username).equals()this.addFieldError(username,用户名不能为空);if(this.mobile=null|(this.mobile.toString().equals()this.addFieldError(mobile,手机号不能为空);else/正则表达式(首位,)if(!Ppile(1358d9$).matcher(this.mobile).matches()this.addFieldError(mobile,手机号格式不确定);验证失败后,请求转发至验证失败后,请求转发至input视图:视图:/WEB-INF/pa
4、ge/addUser.jsp在在addUser.jsp页面中使用页面中使用显示失败信息。显示失败信息。/引用ognl标签库9手工编写代码方式(指定方法)public void validateXxx()if(this.username=null|(this.username).equals()this.addFieldError(username,用户名不能为空);if(this.mobile=null|(this.mobile.toString().equals()this.addFieldError(mobile,手机号不能为空);else/正则表达式(首位,)if(!Ppile(1358
5、d9$).matcher(this.mobile).matches()this.addFieldError(mobile,手机号格式不确定);Xxx代表方法名,首字母大写代表方法名,首字母大写验证失败后,请求转发至验证失败后,请求转发至input视图:视图:/WEB-INF/page/addUser.jsp在在addUser.jsp页面中使用页面中使用显示失败信息。显示失败信息。/引用ognl标签库10输入校验的流程1.类型转换器对请求参数执行类型转换,并把转换后的值赋给action中的属性。2.如果在执行类型转换的过程中出现异常,系统会将异常信息保存到ActionContext,conver
6、sionError拦截器将异常信息添加到fieldErrors里。不管类型转换是否出现异常,都会进入第3步。3.系统通过反射技术先调用action中的validateXxx()方法,Xxx为方法名。4.再调用action中的validate()方法。5.经过上面4步,如果系统中的fieldErrors存在错误信息(即存放错误信息的集合的size大于0),系统自动将请求转发至名称为input的视图。如果系统中的fieldErrors没有任何错误信息,系统将执行action中的处理方法。11基于XML配置方式(全方法)定义UserAction-validation.xml:ActionClassN
7、ame-validation.xml true 用户名不能为空!指定action中要校验的属性指定校验器:xwork-core-2.x.jar下com.opensymphony.xwork2.validator.validators中default.xml找到校验器类型true对属性进行校验,首先要求调用trim()方法去掉空格为校验失败后的提示信息12基于XML配置方式(指定方法)当校验文件的取名为ActionClassName-validation.xml时,会对 action中的所有处理方法实施输入验证。如果你只需要对action中的某个action方法实施校验,那么,校验文件的取名应为
8、:ActionClassName-ActionName-validation.xml,其中ActionName为struts.xml中action的名称。例如:在实际应用中,常有以下配置:/WEB-INF/page/message.jsp/WEB-INF/page/addUser.jspUserAction中有以下两个处理方法:public String add()throws Exception .public String update()throws Exception .要对add()方法实施验证,校验文件的取名为:UserAction-user_add-validation.xml要
9、对update()方法实施验证,校验文件的取名为:UserAction-user_update-validation.xml13struts2提供的校验器列表系统提供的校验器如下:required(必填校验器,要求field的值不能为null)requiredstring(必填字符串校验器,要求field的值不能为null,并且长度大于0,默认情况下会对字符串去前后空格)stringlength(字符串长度校验器,要求field的值必须在指定的范围内,否则校验失败,minLength参数指定最小长度,maxLength参数指定最大长度,trim参数指定校验field之前是否去除字符串前后的空格
10、)regex(正则表达式校验器,检查被校验的field是否匹配一个正则表达式.expression参数指定正则表达式,caseSensitive参数指定进行正则表达式匹配时,是否区分大小写,默认值为true)int(整数校验器,要求field的整数值必须在指定范围内,min指定最小值,max指定最大值)double(双精度浮点数校验器,要求field的双精度浮点数必须在指定范围内,min指定最小值,max指定最大值)fieldexpression(字段OGNL表达式校验器,要求field满足一个ognl表达式,expression参数指定ognl表达式,该逻辑表达式基于ValueStack进行
11、求值,返回true时校验通过,否则不通过)email(邮件地址校验器,要求如果field的值非空,则必须是合法的邮件地址)url(网址校验器,要求如果field的值非空,则必须是合法的url地址)date(日期校验器,要求field的日期值必须在指定范围内,min指定最小值,max指定最大值)conversion(转换校验器,指定在类型转换失败时,提示的错误信息)visitor(用于校验action中的复合属性,它指定一个校验文件用于校验复合属性中的属性)expression(OGNL表达式校验器,expression参数指定ognl表达式,该逻辑表达式基于ValueStack进行求值,返回t
12、rue时校验通过,否则不通过,该校验器不可用在字段校验器风格的配置中)14校验器的使用例子required 必填校验器 性别不能为空!requiredstring 必填字符串校验器 true 用户名不能为空!stringlength:字符串长度校验器102true15email:邮件地址校验器电子邮件地址无效regex:正则表达式校验器 手机号格式不正确!int:整数校验器1150年龄必须在1-150之间字段OGNL表达式校验器!CDATAimage()文件不能为空16基于XML校验的一些特点当为某个action提供了ActionClassName-validation.xml和ActionC
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- class17struts2 高级 精编
限制150内