struts2知识总结.doc
文本预览下载声明
struts2知识总结1.全局的逻辑控制器为一个过滤器,负责过滤所有的请求。该过滤器引用的API类为???? org.apache.struts2.disapatcher.FilterDispatcher???? ?? 2.MVC:页面请求(jsp)——逻辑控制器(Filter)——业务控制器(Action)——业务逻辑组件——业务处理/DAO?? ?? 3.struts2的配置文件放在classpath下。?? 4.struts2的类型转换:?????? a.继承DefaultTypeConverter,????????? 覆盖父类的public Object convertValue(Map context, Object value, Class toType)方法?????? b.继承StrutsTypeConverter,????????? 覆盖父类的public Object convertFromString(Map context, String[] values, Class toClass)????????? 该方法负责转换从页面传递过来的数据。????????? 覆盖父类的public String convertToString(Map context, Object o) ????????? 该方法负责将Action中处理好的数据转换成相应格式的字符串。?? ?? 5.struts2的数据验证:?????? a.使用编码方式进行验证。业务控制器Action继承ActionSupport类,重写public void validate()方法。????????? 在该方法中进行数据验证。若Action中处理业务的方法为test,则可以编写public void validateTest()????????? 方法,来对test方法的数据进行验证。(系统在进行validateTest方法后,会接着执行validate方法,然后????????? 才执行相应的业务代码。)????????? 若严重出错,则可以调用addFieldError或者调用addActionError方法,增加相应的错误提示信息。?????? b.使用配置xml文件进行验证。验证文件的名字为:×××Action-validation.xml。验证的方式包含字段验证和非字段验证。????????? 其中字段验证表示对某个字段进行某些类型的验证。非字段验证表示用某个类型的验证来验证,某个字段。两种方式????????? 底层实现一样,只是表现方式不同,字段验证方式比较直观。????????? 验证的类型有一下几种:required,requiredstring,int,date,double,expression,fieldexpression???????? email,url,visitor,conversion,stringLength,regex(正则表达式)。????????? 对验证类型可以指定shourt-circuit参数为true,来执行短路验证。????????? 如果Action中执行业务的方法为test,则可以通过编写×××Action-test-validation.xml方法来对test方法的数据进行????????? 验证。且执行完test方法的私有验证文件后,还会执行默认的验证文件×××Action-test-validation.xml的验证。?????? c.struts2进行客户端的验证。首先需要使用struts2的标签库,且标签库的theme属性不能为simple,然后设置标签的???????? validate属性为true。????????? 注意:struts2的客户端验证依赖于服务器的验证配置文件。?? ?? 6.struts2的拦截器。struts2的拦截器是struts2的核心,其底层实现使用了Java的反射机制与动态代理。在struts2的配置文件中????? 为一个Action引入了一个拦截器,则配置的默认拦截器不会被调用,需要手工配置到该Action中。????? 实现struts2拦截器的方法:??????? a.实现Interceptor接口,并实现init,destrory以及intercept方法。??????? b.继承AbstractInterceptor类,覆盖intercept方法。??????? c.继承MethodFilterInterceptor类,覆盖intercept方法。该类可以对特定的方法进行拦截。????? 拦截器栈可以包含拦截器和拦截器栈。?? ?? 7.文件的上传
显示全部