1. 程式人生 > >20條struts學習總結

20條struts學習總結

struts area 啟動 types double 資源配置 upload include tint

  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學習總結