- 浏览: 94674 次
- 性别:
- 来自: 北京
最新评论
-
zhaolianyang:
<div class="quote_title ...
JAVA 面试32问 -
zhaolianyang:
<div class="quote_title ...
JAVA 面试32问 -
leftcopychenhx:
&是在什么情况作为逻辑运算符呢
JAVA 面试32问 -
Mybeautiful:
第二十六,当一个线程进入一个对象的一个synchronized ...
JAVA 面试32问 -
zhaolianyang:
dayaolili 写道 那就换个有激情有动力的工作吧!换个适 ...
如何在工作中保持旺盛的状态???
Struts2的核心 拦截器
一、修改RegisterAction.java类,在validate方法中添加一条错误信息语句this.addFieldError("username", "aaaaaaaaaaaaaaa");:
当表单所有的输入都为空,会出现下面的效果:
说明:不管是何种验证方式,最终的错误信息都会放到fielderror里面去,最终出现验证重复的现象。
笔记:
1、真正存放field级别的错误信息的对象是LinkedHashMap
2、该LinkedHashMap的key是String类型的,value是ArrayList类型的
3、对于Action级别的错误信息实际上是放置在ArrayList中的
4、拦截器:Interceptor
功能:拦截器的实现机制:
二、在src下创建com.interceptor包,并在这个包下创建一个Target类和一个TargetInterface接口:
Target.java:
TargetInterface.java:
三、在同一目录下创建一个拦截器Interceptor.java:
四、在同一目录下再创建一个处理器类MyHandker.java:
五、再创建一个代理类MyProxy.java类(作用是为了产生一个代理):
六、再创建一个Client.java类:
一、修改RegisterAction.java类,在validate方法中添加一条错误信息语句this.addFieldError("username", "aaaaaaaaaaaaaaa");:
package com.test.action; import java.util.Calendar; import java.util.Date; import com.opensymphony.xwork2.ActionSupport; public class RegisterAction extends ActionSupport { private String username; private String password; private String repassword; private int age; private Date birthday; private Date graduation; public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getRepassword() { return repassword; } public void setRepassword(String repassword) { this.repassword = repassword; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public Date getBirthday() { return birthday; } public void setBirthday(Date birthday) { this.birthday = birthday; } public Date getGraduation() { return graduation; } public void setGraduation(Date graduation) { this.graduation = graduation; } @Override public String execute() throws Exception { return SUCCESS; } // public String abc() throws Exception { // // System.out.println("abc() method invoked"); // return SUCCESS; // } // // public void validateAbc(){ // // System.out.println("validateAbc() invoked"); // } @Override public void validate() { System.out.println("validate~~~~~~~~~~~~~~"); this.addFieldError("username", "aaaaaaaaaaaaaaa"); // if(null == username || username.length() < 6 || username.length() > 10){ // this.addActionError("username invalid"); // } // if(null == password || password.length() <6 || password.length() > 10){ // this.addActionError("password invalid"); // } // else if(null == repassword || repassword.length() < 6 || repassword.length() > 10){ // this.addActionError("repassword invalid"); // } // else if(!password.equals(repassword)){ // this.addFieldError("password", "two passwords not the same"); // } // if(age <= 0 || age > 150){ // this.addActionError("age should be between 1 and 150"); // } // // if(null != birthday && null != graduation){ // Calendar c1 = Calendar.getInstance(); // c1.setTime(birthday); // // Calendar c2 = Calendar.getInstance(); // c2.setTime(graduation); // // if(!c1.before(c2)){ // this.addActionError("birthday should be before graduation"); // } // } } }
当表单所有的输入都为空,会出现下面的效果:
说明:不管是何种验证方式,最终的错误信息都会放到fielderror里面去,最终出现验证重复的现象。
笔记:
1、真正存放field级别的错误信息的对象是LinkedHashMap
2、该LinkedHashMap的key是String类型的,value是ArrayList类型的
3、对于Action级别的错误信息实际上是放置在ArrayList中的
4、拦截器:Interceptor
功能:拦截器的实现机制:
二、在src下创建com.interceptor包,并在这个包下创建一个Target类和一个TargetInterface接口:
Target.java:
package com.interceptor; public class Target implements TargetInterface{ public void doSomething(){ System.out.println("do something"); } }
TargetInterface.java:
package com.interceptor; public interface TargetInterface { public void doSomething(); }
三、在同一目录下创建一个拦截器Interceptor.java:
package com.interceptor; public class Intercepoter { public void before(){ System.out.println("before"); } public void after(){ System.out.println("after"); } }
四、在同一目录下再创建一个处理器类MyHandker.java:
package com.interceptor; import java.lang.reflect.InvocationHandler; import java.lang.reflect.Method; public class MyHandler implements InvocationHandler { private Object object; private Interceptor interceptor = new Interceptor(); public void setObject(Object object){ this.object=object; } public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { Object result = null; interceptor.before(); result = method.invoke(object, args); interceptor.after(); return result; } }
五、再创建一个代理类MyProxy.java类(作用是为了产生一个代理):
package com.interceptor; import java.lang.reflect.Proxy; public class MyProxy { public Object getProxy(Object object){ MyHandler myHandler = new MyHandler(); myHandler.setObject(object); return Proxy.newProxyInstance(Target.class.getClassLoader(), object.getClass().getInterfaces(), myHandler); } }
六、再创建一个Client.java类:
package com.interceptor; import java.lang.reflect.InvocationHandler; import java.lang.reflect.Method; public class MyHandler implements InvocationHandler { private Object object; private Interceptor interceptor = new Interceptor(); public void setObject(Object object){ this.object=object; } public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { Object result = null; interceptor.before(); result = method.invoke(object, args); interceptor.after(); return result; } }
发表评论
-
struts2学习笔记十九(第19讲.Struts2深入探索 续)
2013-01-31 01:26 782Struts2应用开发详解 第十九讲 Struts2 深入 ... -
struts2学习笔记十八(第18讲.Struts2深入探索)
2013-01-26 00:23 7851、在src目录下创建属性文件名struts.propert ... -
struts2学习笔记十七(第17讲.Struts2的国际化续)
2012-06-01 00:46 1233struts2的国际化: 1.页面的国际化,也就是jsp的国际 ... -
struts2学习笔记十六(第16讲.Struts2的国际化)
2012-05-24 23:35 811struts2学习笔记十六(第16讲.Struts2的国际化) ... -
struts2学习笔记十五(第15讲.Struts2的文件上传和下载续三)
2011-02-11 16:56 917Struts2的文件上传和下载续三 功能:用户可以自定义上传文 ... -
struts2学习笔记十四(第14讲.Struts2的文件上传和下载续二)
2011-01-21 16:00 1313Struts2的文件上传和下载续二 说明:使用struts2的 ... -
struts2学习笔记十三(第13讲.Struts2的文件上传和下载续)
2011-01-19 18:04 941Struts2的文件上传和下载续 接上面未完成的功能。 一、首 ... -
struts2学习笔记十二(第12讲.Struts2的文件上传和下载)
2011-01-18 14:57 1268Struts2的文件上传和下载 ... -
struts2学习笔记十一(第11讲.Struts2的核心 拦截器续)
2011-01-14 16:33 1024Struts2的核心 拦截器续 说明:拦截器的主要作用就是拦截 ... -
struts2学习笔记九(第9讲.Struts2的校验框架 续)
2011-01-12 18:11 1077Struts2的校验框架 续 struts2同样支持客户端的 ... -
struts2学习笔记八(第8讲.Struts2的校验框架)
2011-01-12 15:44 921第8讲.Struts2的校验框架 之前的验证方式是stru ... -
struts2学习笔记七(第7讲.Struts2的输入校验续二)
2011-01-11 18:07 1037Struts2的输入校验续二 主要介绍addActionErr ... -
struts2学习笔记六(第6讲.Struts2的输入校验续一)
2011-01-10 14:32 1226Struts2的输入校验续一 说明: 遇到类型转换错误的时候 ... -
struts2学习笔记五(第5讲.Struts2的输入校验)
2011-01-07 18:36 1026Struts2的输入校验 数据校验是建立在类型转换的基础之上的 ... -
struts2学习笔记四(第4讲.Struts2的类型转换续)
2011-01-06 23:25 975struts2中的局部类型转换 新的需求:用户需要同时增加三 ... -
struts2学习笔记三(第3讲.Struts2的类型转换)
2011-01-05 17:31 1060struts2中的局部类型转换 其中一个主要的就是使用逗号将 ... -
struts2学习笔记二(第2讲.Struts2入门与配置续)
2011-01-05 16:36 935接上面未完成的功能:判断输入的用户名和密码是否正确。 一、创建 ... -
struts2学习笔记一(第1讲.Struts2入门与配置)
2011-01-05 00:12 1359struts2学习笔记一(第1讲.Struts2入门与配置) ...
相关推荐
这是学习struts2时记得重点笔记,包括了一些原理,ognl语句的编写,以及如何设置拦截器等等一些基本知识,起到复习和巩固的作用
struts2学习笔记,拦截器,action,所需jar包,从零开始
NULL 博文链接:https://zhaolianyang.iteye.com/blog/872317
01 Struts2-Action 5 一、 Struts作用: 5 二、 搭建Struts2的运行环境: 5 三、 Namespace 6 四、 标签 6 五、 Action 6 六、 路径问题的说明 8 ...09 自定义拦截器 38 10 类型转换 38 Struts2总结 39
struts2快速入门学习笔记,包含执行流程、验证、拦截器、国际化等的使用
基于AOP(面向切面编程)思想的拦截器机制,更易扩展(不修改源代码的条件下,增强代码功能) 更强大、更易用输入校验功能 整合Ajax支持:json插件 Struts2的今生前世: 1.早期开发模型Servlet+JSP+JavaBean显得...
struts2.2学习笔记总结,action,拦截器,过滤器,国际化,struts.xml解析等的总结。
适合新手借鉴的struts学习笔记,更适合一入门的老手借鉴,个人学习心得
当前struts2的filter过滤到一个.action结尾的请求的时候,会把这个请求交给struts2内部的拦截器(interceptor) 2)拦截器起到什么作用 可以帮我们丰富action的功能,比自动类型转换(页面传一个String类型的id,接收的...
基于 Struts2.1.8 包括Struts2的基本应用、文件上传、拦截器、输入校验、国际化、OGNL表达式、Struts2标签等内容。
学习struts2的笔记与源码:输入验证、国际化、拦截器等
Struts 2.1.8 学习源码内容 Struts2_01FirstDemo : 跑通第一个Struts2的实例 Struts2_02CURD : 关于Struts2的增、删、...Struts2_05Interceptor : Struts2拦截器的使用 Struts2_06FileUpload : Struts2上传文件的使用
拦截器 博文链接:https://wuzhaohuixy-qq-com.iteye.com/blog/710102
{12.11.2}intersect与minus}{166}{subsection.12.11.2} {12.11.3}join}{166}{subsection.12.11.3} {12.11.3.1}cross join}{166}{subsubsection.12.11.3.1} {12.11.3.2}inner join}{167}{subsubsection.12.11.3.2...
struts2框架教学项目,针对每个知识点都有一个对应的实例,内嵌学习笔记。想学习的同学绝对适合,本人亲自教学实例。
8、拦截器 2.Spring入门 2.1.Springmvc是什么 3.3.jdbc编程步骤: 1、加载数据库驱动 2、创建并获取数据库链接 3、创建jdbc statement对象 4、设置sql语句 5、设置sql语句中的参数(使用preparedStatement) 6、通过...
《跟我学Java Web》内容包括搭建Web开发环境、HTML相关技术基础知识、...Struts2技术详解(拦截器、输入校验、国际化、Struts2的各种标签、对Ajax的支持等)、Spring2.5(容器、装配Java Bean、JDBC和Hibernate模板...