20條struts學習總結
阿新 • • 發佈:2017-09-24
struts area 啟動 types double 資源配置 upload include tint
- Struts采用filter(StrutsPrepareAndExecuteFilter)機制實現。
- 繼承ActionSupport可以實現一個Action。
- Action可以復寫execute方法實現處理,也可以不復寫execute,直接寫方法,但是struts.xml文件的name屬性要改為ActionName_*形式,請求路徑要改為ActionName!function.action的形式。
- 每來一個客戶端請求,struts就啟動一個線程執行Action,所以做到了Action和其包含的屬性的隔離。
- 每個Action都可以設置返回值,返回值直接是一個struts.xml文件中的result的name屬性。
- Struts.xml文件可以相互包含,用include關鍵字。
- Action中能取得JSP的內置對象,通過ServletActionContext獲取:pageContext、request、response、ServletContext。
- 資源配置文件通過struts.properties的struts.custom.i18n.resources屬性指定。
- 資源配置文件有三種:全局、包級別、Action級別。
- Action要接收一個VO,就直接在Action裏設置一個對應的VO屬性就可以了,但是要寫上對應的getter和setter方法。
- Strtus有自己的標簽庫,但是不建議使用。
- Struts數據驗證可以在Action中復寫ActionSuport的validate()方法。也可以用配置文件的方式。兩種方式沒有本質上的區別,只是兩種不同形式。但是,兩者起作用的時刻都是在默認賦值完成之後進行的,如果數據轉換失敗,則對應的屬性為null,所以這兩種驗證方式的意義都不大。
- Action錯誤提示可以使用ActionSupport類中的addFieldError方法。當Action檢測到FieldErrors不為空的時候,則認為數據驗證失敗。可以通過getFieldErrors方法獲取所有的數據校驗錯誤。
- 要實現數據校驗,可以將邏輯放在攔截器(Interceptro)中完成。攔截器執行在Filter和Action之間,此時數據賦值還沒有發生,這是校驗數據合法性的好時機。
- 開發自定義的攔截器需要繼承AbstractInterception。
- 攔截器中ActionInvocation接口作為參數,它可以取得真正執行的Action實例。同時還可以取得request、session、application的所有屬性。你用反射機制實現獲取真正執行的Action的相關屬性。
- 指令牌Token可以防止表單反復提交。
- 文件上傳可以用File參數直接接收,方法是在Action中聲明一個File類型的變量就可以了—如File photo。同時還可以獲取上傳文件的名稱和類型等,方法是在聲明對應文件名後綴加上FileName或者ContentType的變量。
- 文件上傳限制通過引用攔截器fileUpload實現,給fileUpload指定參數,如maximumSize和allowedTypes。
- Struts可以接受客戶端的數據,根本原因是其實現了很多轉換器,struts可以接受簡單類型如:string、int、double、date等,還可以接受的數據。但是如果要接受更多的自定義的類型數據,可以實現轉換器。轉換器的實現通過繼承DefaultTypeConverter完成。
20條struts學習總結