码迷,mamicode.com
首页 > 其他好文 > 详细

20条struts学习总结

时间:2017-09-24 22:25:17      阅读:181      评论:0      收藏:0      [点我收藏+]

标签:filename   load   type   content   提示   file   数据校验   cep   bst   

  1. Struts采用filter(StrutsPrepareAndExecuteFilter)机制实现。
  2. 继承ActionSupport可以实现一个Action。
  3. Action可以复写execute方法实现处理,也可以不复写execute,直接写方法,但是struts.xml文件的name属性要改为ActionName_*形式,请求路径要改为ActionName!function.action的形式。
  4. 每来一个客户端请求,struts就启动一个线程执行Action,所以做到了Action和其包含的属性的隔离。
  5. 每个Action都可以设置返回值,返回值直接是一个struts.xml文件中的result的name属性。
  6. Struts.xml文件可以相互包含,用include关键字。
  7. Action中能取得JSP的内置对象,通过ServletActionContext获取:pageContext、request、response、ServletContext。
  8. 资源配置文件通过struts.properties的struts.custom.i18n.resources属性指定。
  9. 资源配置文件有三种:全局、包级别、Action级别。
  10. Action要接收一个VO,就直接在Action里设置一个对应的VO属性就可以了,但是要写上对应的getter和setter方法。
  11. Strtus有自己的标签库,但是不建议使用。
  12. Struts数据验证可以在Action中复写ActionSuport的validate()方法。也可以用配置文件的方式。两种方式没有本质上的区别,只是两种不同形式。但是,两者起作用的时刻都是在默认赋值完成之后进行的,如果数据转换失败,则对应的属性为null,所以这两种验证方式的意义都不大。
  13. Action错误提示可以使用ActionSupport类中的addFieldError方法。当Action检测到FieldErrors不为空的时候,则认为数据验证失败。可以通过getFieldErrors方法获取所有的数据校验错误。
  14. 要实现数据校验,可以将逻辑放在拦截器(Interceptro)中完成。拦截器执行在Filter和Action之间,此时数据赋值还没有发生,这是校验数据合法性的好时机。
  15. 开发自定义的拦截器需要继承AbstractInterception。
  16. 拦截器中ActionInvocation接口作为参数,它可以取得真正执行的Action实例。同时还可以取得request、session、application的所有属性。你用反射机制实现获取真正执行的Action的相关属性。
  17. 指令牌Token可以防止表单反复提交。
  18. 文件上传可以用File参数直接接收,方法是在Action中声明一个File类型的变量就可以了—如File photo。同时还可以获取上传文件的名称和类型等,方法是在声明对应文件名后缀加上FileName或者ContentType的变量。
  19. 文件上传限制通过引用拦截器fileUpload实现,给fileUpload指定参数,如maximumSize和allowedTypes。
  20. Struts可以接受客户端的数据,根本原因是其实现了很多转换器,struts可以接受简单类型如:string、int、double、date等,还可以接受的数据。但是如果要接受更多的自定义的类型数据,可以实现转换器。转换器的实现通过继承DefaultTypeConverter完成。

20条struts学习总结

标签:filename   load   type   content   提示   file   数据校验   cep   bst   

原文地址:http://www.cnblogs.com/kuillldan/p/7588655.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!