Struts2初體驗第一章本章任務實現基于Struts2的用戶登錄本章目標掌握Struts2的使用方法使用Struts2實現用戶登錄使用Struts2實現訪問ServletAPI使用標簽和數據驗證完成用戶登錄Struts2及其優勢Struts2是一個MVC框架,以WebWork設計思想為核心,吸收了Struts1的部分優點Struts2擁有更加廣闊的前景,自身功能強大,還對其他框架下開發的程序提供很好的兼容性Struts2的資源獲取。
Struts2 學習筆記
攔截器,在AOP(Aspect-Oriented Programming<面向切面編程>)中用于在某個方法或字段被訪問之前,進行攔截然后在之前或之后加入某些操作。攔截是AOP的一種實現策略。 在Webwork的中文文檔的解釋為 - 攔截器是動態攔截Action調用的對象。它提供了一種機制可以使開發者可以定義在一個action執行的前后執行的代碼,也可以在一個action執行前阻止其執行。同時也是提供了一種可以提取action中可重用的部分的方式。
Action配置中一定要設置input返回頁面 添加驗證只要創建驗證的xml文件
下面給出了開發Struts 2程序最少需要的JAR。 struts2-core-2.x.x.jar :Struts 2框架的核心類庫 xwork-2.x.x.jar :XWork類庫,Struts 2在其上構建 ognl-2.6.x.jar :對象圖導航語言(Object Graph Navigation Language),Struts 2框架使用的一種表達式語言 freemarker-2.3.x.jar : Struts 2的UI標簽的模板使用FreeMarker編寫commons-logging-1.1.x.jar: ASF出品的日志包,Struts 2框架使用這個日志包來支持Log4J和JDK 1.4+的日志記錄。Commons-fileupload 拷進去還有一種最省事的做法是:如果不需要跟第三方框架集成,把不帶 - plugin結尾的jar文件都添加入類路徑即可。如果需要跟第三方框架集成,這時候還需要加入對應的-plugin jar文件。例如跟spring集成,需要加入struts2-spring-plugin-2.x.x.jar.
Struts 2是通過Commons FileUpload文件上傳。Commons FileUpload通過將HTTP的數據保存到臨時文件夾,然后Struts使用fileUpload攔截器將文件綁定到Action的實例中。
很好的Struts2教程
Struts2 學習筆記
struts2-core-2.x.x.jar :Struts 2框架的核心類庫 xwork-2.x.x.jar :XWork類庫,Struts 2在其上構建 ognl-2.6.x.jar :對象圖導航語言(Object Graph Navigation Language),Struts 2框架使用的一種表達式語言 freemarker-2.3.x.jar :Struts 2的UI標簽的模板使用FreeMarker編寫 commons-logging-1.1.x.jar :ASF出品的日志包,Struts 2框架使用這個日志包來支持Log4J和JDK
Struts2自定義標簽
從struts2.1開始,struts2不再推薦使用Codebehind作為零配置插件,而是改為使用Convention插件來支持零配置,和Codebehind相比,Convention插件更徹底,該插件完全拋棄配置信息,不僅不需要是使用struts.xml文件進行配置,甚至不需要使用Annotation進行配置,而是由struts2根據約定自動配置。
主要完成對StrutsPrepareAndExecuteFilter的配置(在以前的版本中是對FilterDispatcher配置,新版本同樣支持用FilterDispatcher配置),它的實質是一個過濾器,它負責初始化整個Struts框架并且處理所有的請求。這個過濾器可以包括一些初始化參數,有的參數指定了要加載哪些額外的xml配置文件,還有的會影響struts框架的行為。除了StrutsPrepareAndExecuteFilter外,Struts還提供了一個ActionContexCleanUp類,它的主要任務是當有其它一些過濾器要訪問一個初始化好了的struts框架的時候,負責處理一些特殊的清除任務。
Struts2 API 詳解
上圖來源于Struts2官方站點,是Struts2的整體結構。一個請求在Struts2框架中的處理大概分為以下幾個步驟1客戶端初始化一個指向Servlet容器(例如Tomcat)的請求2這個請求經過一系列的過濾器(Filter)(這些過濾器中有一個叫做ActionContextCleanUp的可選過濾器,這個過濾器對于Struts2和其他框架的集成很有幫助,例如:SiteMeshPlugin)3接著FilterDispatcher被調用,FilterDispatcher詢問ActionMapper來決定這個請是否需要調用某個Action
Struts2中iterator標簽遍歷map總結
首先必須明確的一點,Struts 2本身并不是一個新技術,就好比AJAX一樣,本身不是一個新技術,只是一個舊技術的換皮操作。在介紹Strut 2.1之前先來看一下關于WebWork。而且Strtus 1.x由于先天的設計問題,導致與Spring等框架的結合是非常的麻煩,但是在Struts(Webwork)之中,如果要引入了Spring框架,則非常的容易,一句配置文件完成。 可以直接從www.apache.org上下載Struts 2.1的開發包,現在的版本是:Struts 2.1.8,下來之后直接解壓縮,進行手工的配置。
從struts2.1開始,struts2不再推薦使用Codebehind作為零配置插件,而是改為使用Convention插件來支持零配置,和Codebehind相比,Convention插件更徹底,該插件完全拋棄配置信息,不僅不需要是使用struts.xml文件進行配置,甚至不需要使用Annotation進行配置,而是由struts2根據約定自動配置。
Struts2整合Json插件時的一個隱蔽BUG
OGNL是Struts2框架的默認表達式語言,增強了Struts2的數據訪問能力,同時簡化了代碼。
默認包路徑包含 action,actions,struts,struts2 的所有包都會被 struts 作為含有 Action 類的路徑來搜索。你可以通過設置struts.convention.package.locators 屬性來修改這個配置。