Java三大框架(ssh)總結(jié)_第1頁
Java三大框架(ssh)總結(jié)_第2頁
Java三大框架(ssh)總結(jié)_第3頁
Java三大框架(ssh)總結(jié)_第4頁
Java三大框架(ssh)總結(jié)_第5頁
已閱讀5頁,還剩22頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、Hibernate框架第一章 數(shù)據(jù)結(jié)構(gòu)1.1認(rèn)識數(shù)據(jù)結(jié)構(gòu) 數(shù)據(jù):是信息的載體,是能夠被計算機(jī)識別、存儲、計算的符號集合是計算機(jī)處理的對象的總稱; 數(shù)據(jù)元素:也稱為結(jié)點,是組成數(shù)據(jù)的基本單位; 數(shù)據(jù)項:是數(shù)據(jù)的最小單位; 數(shù)據(jù)對象:是具有相同特征的數(shù)據(jù)元素的集合,它是數(shù)據(jù)的子集; 數(shù)據(jù)結(jié)構(gòu):計算機(jī)存儲、組織數(shù)據(jù)的方式;l 邏輯結(jié)構(gòu):指從邏輯關(guān)系上描述數(shù)據(jù),與數(shù)據(jù)的存儲無關(guān),且獨立于語言;n 線性結(jié)構(gòu):有且僅有一個開始結(jié)點和一個終端結(jié)點,所有結(jié)點最多只有一個前驅(qū)結(jié)點和一個直接后繼結(jié)點;n 非線性結(jié)構(gòu):指一個結(jié)點可能有多個直接前驅(qū)和直接后繼結(jié)點。l 存儲結(jié)構(gòu):指數(shù)據(jù)元素及其關(guān)系在計算機(jī)存儲時如何表示

2、,依賴于語言;l 數(shù)據(jù)運算:通茶昂貴定義在數(shù)據(jù)的邏輯結(jié)構(gòu)上。1.2算法 是為求解一個問題需要遵循的,被清晰的制定的簡單指令的集合;正確的算法有如下特點:l 用待處理問題的相關(guān)信息作為輸入數(shù)據(jù)l 對一個既定的合法輸入,多次執(zhí)行同一算法,總返回同一個結(jié)果(隨機(jī)算法除外)l 算法中的指令是可行的,即每個指令都可以實現(xiàn)l 算法中指令的數(shù)量是有限的l 算法執(zhí)行完畢后,能夠輸出正確的數(shù)據(jù)集合1.3算法分析 目的在于選擇合適的算法,算法分析是從復(fù)雜度來考慮的。復(fù)雜度:衡量一個算法好壞的重要手段;l 時間復(fù)雜度:以算法執(zhí)行時間長短來衡量l 空間復(fù)雜度:以算法執(zhí)行占用的存儲空間來衡量第二章 算法第三章 設(shè)計模式

3、3.1面向?qū)ο笤O(shè)計原則 單一職責(zé)原則:要求每個對象應(yīng)該只有一種責(zé)任; 開閉原則:設(shè)計程序時對擴(kuò)展開放,對修改關(guān)閉; 里氏替換原則:任何情況下,子類替換父類,不會影響程序運行; 依賴倒置原則:提倡高層不依賴底層,二者都依賴抽象; 接口隔離原則:把多個功能分開聲明,不強(qiáng)迫客戶實現(xiàn)不需要的功能; 迪米特原則:最少只是原則盡可能的降低訪問級別; 組合/聚合復(fù)用原則:盡量不用繼承達(dá)到復(fù)用類的目的,而是使用組合和聚合。3.2設(shè)計模式分類 創(chuàng)建型模式:如何創(chuàng)建對象以及何時創(chuàng)建對象,工廠模式,單例模式 結(jié)構(gòu)型模式:對象該如何組織以及采用什么樣的結(jié)構(gòu)更合理 行為型模式:規(guī)定了各個對象應(yīng)該具備的職責(zé)以及對象間的通

4、信模式3.3什么是框架 應(yīng)用程序骨架;框架技術(shù)的優(yōu)勢在于:l 不用再考慮公共問題,框架已經(jīng)幫我們做好了l 可以專心在業(yè)務(wù)邏輯上,保證核心業(yè)務(wù)邏輯的開發(fā)質(zhì)量l 結(jié)構(gòu)統(tǒng)一,便于學(xué)習(xí)、維護(hù)l 框架集成的前人的經(jīng)驗有助于寫出穩(wěn)健、性能優(yōu)良并且結(jié)構(gòu)優(yōu)良的高質(zhì)量程序3.4主流框架3.4.1 Struts框架 最早的Java開源框架之一,定義了通用的Controller(控制器),通過配置文件(一般是struts-config.xml)隔離了Model(模型)和View(視圖),以Action的概念對用戶請求進(jìn)行了封裝,是代碼更清晰易讀。3.4.2 Struts2框架 新的框架特性:l 從邏輯中分離出橫切關(guān)

5、注點的攔截器l 減少或者消除配置文件l 貫穿整個框架的強(qiáng)大表達(dá)式語言l 支持可變更和可重用的基于MVC模式的標(biāo)簽API3.4.3 Hibernate框架 對JDBC進(jìn)行了非常輕量級的對象封裝,可以應(yīng)用在任何使用JDBC的場合3.4.5 Spring框架 輕量級框架,主要作為依賴注入容器和AOP實現(xiàn)存在,還提供了聲明式事務(wù)、對DAO層的支持等簡化開發(fā)功能。其優(yōu)點有:l 低侵入式設(shè)計,代碼污染極低l 獨立于何種應(yīng)用服務(wù)器,可以真正實現(xiàn)“Write Once,Run Anywhere”l Spring的DI機(jī)制降低了業(yè)務(wù)對象替換的復(fù)雜性l Spring開發(fā)并不完全依賴于Spring的所有組件,開發(fā)者

6、可以自由選擇使用Spring框架的部分或全部組件。 第四章Hibernate實現(xiàn)數(shù)據(jù)操作4.1 Hibernate概述一個優(yōu)秀的Java持久化層解決方案,是當(dāng)今主流的對象-關(guān)系映射(ORM)工具4.1.1 理解持久化l 瞬時狀態(tài):程序退出,數(shù)據(jù)就不存在了l 持久狀態(tài):在程序退出后,以文件的形式保存在硬盤中。l 持久化:將程序中的數(shù)據(jù)在瞬時狀態(tài)和持久之間轉(zhuǎn)換的機(jī)制4.1.2 對象-關(guān)系映射:能在對象和關(guān)系型數(shù)據(jù)庫兩者之間進(jìn)行數(shù)據(jù)轉(zhuǎn)換的機(jī)制4.2 搭建Hibernate項目環(huán)境l 加載Hibernate驅(qū)動包;l 創(chuàng)建Hibernate.cfg.xml文件,指定數(shù)據(jù)庫連接信息及其映射文件路徑l 創(chuàng)

7、建持久化類和映射文件,并在Hibernate.cfg.xml中指定映射文件路徑l 創(chuàng)建Hibernate連接工具類4.3 在Hibernate中執(zhí)行持久化操作的步驟1) 讀取并解析配置文件,讀取并解析映射文件,創(chuàng)建SessionFactory,打開sessionSession session=new Configuration().configure().buildSessionFactory().openSession();2) 開啟事務(wù)(增刪改必須)Transaction tx=session.beginTransaction();3) 持久化操作session.save(emp);4)

8、提交事務(wù)mit();5) 關(guān)閉sessionsession.close();4.4 實體對象的生命周期 由產(chǎn)生到被GC回收的一段過程1) 自由狀態(tài)(Transient)2) 持久狀態(tài)(Persistent)3) 游離狀態(tài)(Detached) 第五章 Hibernate關(guān)聯(lián)映射及高級查詢5.1 配置對象關(guān)聯(lián)屬性5.1.1對象關(guān)聯(lián)關(guān)系種類 一對多(多對一)關(guān)聯(lián) 一對一關(guān)聯(lián) 多對多關(guān)聯(lián)5.1.2 一對多(多對一)配置1) 刪除外鍵2) 持久化類添加關(guān)聯(lián)類的相關(guān)屬性及getter/setter方法3) 映射文件中建立該屬性和數(shù)據(jù)庫表字段的映射信息5.1.3 一對一配置5.1.3 多對多配置 創(chuàng)建中間表

9、、兩端數(shù)據(jù)庫表的持久化類,針對中間表的持久化類分別和兩端的數(shù)據(jù)庫表的持久化類創(chuàng)建一對多的關(guān)聯(lián)5.2 HQL查詢 步驟:得到Session編寫HQL語句創(chuàng)建Query對象執(zhí)行查詢,得到結(jié)果 屬性查詢:直接指定屬性:select eno,ename from Emp通過構(gòu)造方法:select new Emp(eno,ename) from Emp 實體更新:update Emp set ename=xxxwhere eno=10001 實體刪除:delete from Emp where eno=10001 占位符:from Emp where eno=? 命名參數(shù):from Emp where

10、eno=:eno 查詢排序:默認(rèn)升序:from Emp order by eno 指定降序:from Emp order by eno desc 升序 :asc 分頁:Query接口提供的方法:setFirstResult(); setMaxResult();第六章 Criteria查詢及命名查詢6.1 Criteria查詢概述 Criteria查詢又稱對象查詢,采用對象的方式封裝查詢條件,并提供Restrictions等類型做輔助,是傳統(tǒng)SQL的對象化表示:Criteria c=sesson.createCriteria(Emp.class);c.list();獲取所有數(shù)據(jù); Restric

11、tions限制結(jié)果集:按薪資降序:c.addOrder(Order.desc(salary);按編號查詢:c.add(Restrictions.eq(dept.dno, dno);按薪資區(qū)間查詢c.add(Restrictions.between(salary, minSalary, maxSalary);查詢指定屬性:ProjectionList p = PjectionList();p.add(Property.forName(eno);p.add(Property.forName(ename);p.add(Property.forName(salary);c.

12、setProjection(p);查詢最高工資:c.setProjection(Projections.max(salary);分頁并排序:c.setFirstResult(pageIndex - 1) * pageSize); c.setMaxResults(pageSize); c.addOrder(Order.desc(salary);6.2 命名HQL查詢 修改相應(yīng)的映射文件(與class標(biāo)簽并列): 在程序中使用session對象的getNamedQuery()方法獲取在映射配置文件中添加的HQL插敘語句Query query=session.getNamedQuery(“aaa”)

13、;6.3 本地sql查詢String sql=”select e.* from Emp where e.ename=ccc”SQLQuery query=session.createSQLQuery(sql).addEntity(“e”,Emp.class)6.4 命名sql查詢Query query=session.getNamedQuery(“aaa”);6.5 定制SQLclass節(jié)點下:sql語句sql語句第七章 緩存與注解7.1 緩存簡介7.1.1 緩存分類:l 一級緩存:Sessionl 二級緩存:SessionFactoryl 查詢緩存:依賴于二級緩存7.1.2 緩存作用范圍:與

14、三類緩存一一對應(yīng)l 事務(wù)范圍l 進(jìn)程范圍l 集群范圍7.2 一級緩存作用:減少訪問數(shù)據(jù)庫的頻率保證數(shù)據(jù)庫中的相關(guān)記錄與緩存中的相應(yīng)對象保持同步7.3 二級緩存 配置步驟:l 添加JAR包,ehcache-1.2.3.jar和commons-loging-1.1.1.jarl 添加ehcache.xml到src目錄l 在Hibernate.cfg.xml中指定提供商和開啟二級緩存l 配置實體類映射文件,class節(jié)點下添加 應(yīng)用場景:l 很少被修改的數(shù)據(jù)l 不是很重要的數(shù)據(jù),允許出現(xiàn)偶爾并發(fā)問題l 不會被并發(fā)訪問的數(shù)據(jù)l 應(yīng)用參考的常量數(shù)據(jù)。極少實例或從來不會被修改 以下數(shù)據(jù)不適合放進(jìn)二級緩存:

15、l 經(jīng)常被修改的數(shù)據(jù)l 財務(wù)數(shù)據(jù)l 與其他應(yīng)用共享的數(shù)據(jù)7.4 查詢緩存步驟:l 在Hibernate.cfg.xml中開啟查詢緩存l 在程序中手動啟用查詢緩存query.setCacheable(true);7.5 注解簡介使用Hibernate注解步驟:l 添加jar包l 使用注解配置持久化類以及對象關(guān)聯(lián)關(guān)系l 使用AnnotationConfiguration建立會話工廠Session session=new AnnotationConfiguration().configure().builSessionFactory().openSession();l 在Hibernate配置文件中

16、聲明持久化類7.6 命名查詢NamedQuery(name = getGradeByGno, query = from Grade where gno:gno)Query query=session.getNamedQuery(“getGradeByGno”);7.7 本地查詢NamedNativeQuery(name = getGrades, query = select g.* from grade g where g.gno:gno, resultSetMapping = all)SqlResultSetMapping(name = all, entities = EntityResul

17、t(entityClass = cn.wang.entity.Grade.class) )Query query = session.getNamedQuery(getGrades);Struts2框架第一章 Web前端與MVC1.1 初識jQuery jQuery是一個優(yōu)秀的JavaScript框架。它是輕量級的JavaScript庫。 宗旨:”Write Less, Do More”。 jQuery能滿足如下需求:n 取得頁面中的元素。n 修改頁面的外觀。n 改變頁面內(nèi)容。n 響應(yīng)用戶的頁面操作。n 為頁面添加動態(tài)效果。n 不需刷新頁面即可從服務(wù)器獲取信息。n 簡化常見的JavaScrip

18、t任務(wù)。 常見JavaScript庫:n prototype。n YUI。n ExtJS。n jQuery。 jQuery特色:n 利用css優(yōu)勢n 支持?jǐn)U展n 抽象瀏覽器不一致性n 總算面向集合n 將多行操作集于一行1.2 jQuery基本語法1.2.1 準(zhǔn)備工作 下載jQuery庫(). 在頁面元素中引入jQuery庫1.2.2 jQuery對象及基本語法 $(this).hide():隱藏當(dāng)前元素。 $(“p”).hide:隱藏所有標(biāo)簽。 $(“p.test”).hide:隱藏所有class=”test”的標(biāo)簽。 $(“#test”).hide:隱藏所有id=”test”的元素。1.2.

19、3 jQuery對象與DOM對象的區(qū)別與轉(zhuǎn)換 $(“#test”);相當(dāng)于document.getElementById(“test”); $(“#test”).html(“新內(nèi)容”);相當(dāng)于document.getElementById(“test”).innerHTML=”新內(nèi)容”; DOM對象轉(zhuǎn)為jQuery對象:$( document.getElementById(“test”); jQuery對象轉(zhuǎn)為DOM對象:$(“#test”).get(0);1.3 jQuery選擇器及篩選1.3.1 元素選擇器 $(“p”):選取頁面中的元素。 $(“#demo”):選取頁面中id=”demo

20、”的元素。 $(“.intro”):選取頁面中class=”intro”的元素。1.3.2 屬性選擇器 語法:attribute = value 。 例1:$(“inputname=userName”):選取頁面中name=”userName”的input元素。 例2:$(“formname=regForminputname=userName”):選取name=”regForm”的標(biāo)簽中,name=”userName”的input元素。1.3.3 jQuery篩選 $(“#demo”).children(exp):匹配ID為demo的元素的子元素集合。 $(“#demo”).find(exp)

21、:匹配ID為demo的元素的后代元素集合。 $(“#demo”).parent(exp):匹配ID為demo的元素的父元素集合。 $(“#demo”).parents(exp):匹配ID為demo的元素的上級元素集合。 $(“#demo”).siblings(exp):匹配ID為demo的元素的同輩元素集合。1.4 jQuery屬性操作、CSS操作和內(nèi)容操作1.4.1 屬性操作 獲取屬性值:attr(name); 修改屬性值:attr(key , value); 刪除屬性:removeAttr(name);1.4.2 CSS操作1)操作CSS 獲取樣式:css(name); 修改單個樣式:cs

22、s(key , value) 修改多個樣式:css(key1:value1 , key2:value2.);2)操作類樣式 添加類樣式:addClass(className); 移除類樣式:removeClass(className);1.4.3 內(nèi)容操作 獲取或設(shè)置HTML內(nèi)容:html()、html(val)。 獲取或設(shè)置對象的值:val()、val(val)。 追加內(nèi)容:append(content)。 刪除節(jié)點:remove()。1.5 jQuery時間處理1.5.1 綁定事件 語法:bind(type , fn); type-事件類型;fn-函數(shù)。 例:$(function()$(“

23、#btn”).bind(“click” , function()alert(“測試”);););1.5.2 觸發(fā)事件 語法:trgger(type); type-觸發(fā)事件的類型; 例:$(function()$(“# btnSubmit”).bind(“click” , function()$(“#regForm”).trigger(“submit”); /可以替換為:$(“#regForm”).submit(); ); );1.5.3 綁定活動事件 語法:live(type , fn); type-事件類型;fn-函數(shù)。1.6 jQuery效果1.6.1 顯示隱藏效果 1)顯示效果語法:sh

24、ow(speed , callback); speed:動畫時長(毫秒),取值有:slow、fast、normal。 callback:指定的回調(diào)函數(shù)(動畫執(zhí)行完畢,執(zhí)行函數(shù))。2)隱藏效果語法:hide(speed , callback);1.6.2 滑動效果原理:改變對象的高度、透明度及顯示狀態(tài)。1)向上滑動效果:slideUp(speed , callback);2)向下滑動效果:slideDown(speed , callback);1.6.3 淡入淡出效果1)淡入效果語法:fadeIn(speed , callback);2)淡出效果語法:fadeOut(speed , callba

25、ck);1.6.4 自定義動畫語法:animate(params , duration , callback ); params:要實現(xiàn)的最終狀態(tài),指css效果。n Json對象:font-size:16px , duration:執(zhí)行動畫所用的時間(毫秒)。 callback:執(zhí)行完動畫之后要執(zhí)行的函數(shù)。1.7 jQuery Ajax請求1.7.1 $.post( )方法語法:$.post(url , data , callback); url:用戶要請求的頁面地址。 data:要發(fā)送的數(shù)據(jù)。 執(zhí)行完Ajax請求后要回調(diào)的函數(shù)。1.7.2 其他方法 $.get(url , data , ca

26、llback); $.load(url , data , callback); $.getJSON(url , data , callback); $.getScript(url , callback); $.ajax(options)。第二章 Struts2基礎(chǔ)2.1 Struts2簡介Struts2是基于WebWork和Struts 1的MVC框架,優(yōu)點: 架構(gòu)清晰,使開發(fā)者只關(guān)注業(yè)務(wù)邏輯實現(xiàn)即可; 提供了豐富的標(biāo)簽,大大提高了開發(fā)效率; 提供頁面導(dǎo)航,通過配置文件把握整個系統(tǒng)各個部分之間的聯(lián)系,便于后去維護(hù); 不在依賴Servlet API,便于測試。2.2 搭建Struts2開發(fā)環(huán)境2

27、.2.1 下載Struts2網(wǎng)址:. apps:包含了基于Struts2的事例應(yīng)用。 docs:幫組文檔。 lib:核心類庫和第三方插件類庫(jar包)。 src:源代碼2.2.3 搭建Struts2開發(fā)環(huán)境的步驟1)在項目中導(dǎo)入Struts2必須jar包: commons-:Struts文件的上傳和下載。 commons-io-2.0.1.jar:文件讀取。 commons-lang3-3.1.jar:為java.lang包提供擴(kuò)展。 freemarker-2.3.19.jar:模板引擎。 ognl-3.0.5.jar:支持OGNL表達(dá)式。 Struts2-core-.jar:

28、Struts2核心包。 xwork-core-.jar:xwork核心包。 Javassist-3.11.0.GA.jar:分析、編輯和創(chuàng)建Java字節(jié)碼的類庫。2)修改web.xml配置文件。(節(jié)點下)Struts2 org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilterStruts2/*3)添加struts.xml配置文件到src目錄下2.3 Action類的實現(xiàn)方法1)使用普通的Java類,編寫public String execute()方法。2)實現(xiàn)Action接口,實現(xiàn)execute(

29、)方法。3)繼承ActionSupport類,重寫execute()方法。有點: 不需要強(qiáng)制實現(xiàn)execute()方法。 自帶驗證方法validate().2.4 Action接收參數(shù)的三種實現(xiàn)方式1)屬性方式接收參數(shù)。 在Action中定義屬性來接收客戶端上傳的參數(shù),并提供getter和setter方法,jsp頁面中用屬性名表示2)JavaBean方式接收參數(shù) 用java實體類封裝屬性信息,在Action中定義實體類對象為屬性,并提供gtter和setter方法,jsp頁面用 對象.屬性名。3)ModelDriven方式接收參數(shù) 用java實體類封裝屬性信息,在Action中實現(xiàn)ModelD

30、riven接口,實例化實體類,調(diào)用getModel()方法,返回實體類對象,jsp頁面直接用屬性名。2.5 的配置1)result的name屬性 SUCCESS:Action執(zhí)行成功,顯示結(jié)果視圖給用戶。 NONE:Action執(zhí)行成功,不顯示結(jié)果視圖給用戶。 ERROR:Action執(zhí)行失敗,顯示錯誤頁面給用戶。 INPUT:執(zhí)行Action需要更多的輸入信息,回到INPUT對應(yīng)的頁面。 LOGIN:因用戶沒有正確登錄而沒有正確執(zhí)行,將返回改登錄試圖。2)result的type屬性 dispatcher:請求轉(zhuǎn)發(fā)到指定的URL。 redirect:請求重定向到指定的URL。 redirect

31、Action:請求重定向到指定的Action。 chain:Action鏈?zhǔn)教幚恚埱筠D(zhuǎn)發(fā)到指定的Action。 json:實現(xiàn)Ajax時,返回JSON對象。2.6 全局結(jié)果配置/login.jsp第三章OGNL和Struts2標(biāo)簽3.1 訪問session作用域的三種方法3.1.1 使用ActionContext訪問Servlet APIMap session=ActionContext.getContext().getSession();3.1.2 以IoC方式訪問Servlet API3.1.3 以耦合方式訪問Servlet APIHttpSession session=ServletA

32、ctionContext.getRequest().getSession();3.2 OGNL表達(dá)式 導(dǎo)入taglib指令: 在頁面中獲取并輸入Action屬性: 在頁面中獲取并輸出session中保存的數(shù)據(jù): OGNL表達(dá)式具有以下功能和特點:l 能存取對象的屬性,也能調(diào)用對象的方法。l 能訪問靜態(tài)方法、靜態(tài)屬性。l 能訪問值棧及Stack Context。l 能操作集合對象。l 支持賦值、運算操作、字段類型轉(zhuǎn)化。3.3 Struts2標(biāo)簽3.1.1數(shù)據(jù)標(biāo)簽 添加taglib指令: 主要作用是對各種數(shù)據(jù)訪問的相關(guān)功能1):用來輸出值棧和Stack Context中所有能訪問的值。 value

33、:用來獲取值的OGNL表達(dá)式。(輸出字符串) defualt:默認(rèn)輸出內(nèi)容。 escapeHtml:是否轉(zhuǎn)義HTML,默認(rèn)取值為true。2)會在頁面生成一個鏈接,單擊這個鏈接可以查看值棧和Stack Context中所能訪問的值,常用于程序排錯。3):用于格式化輸出一個日期。 name:被格式化的值,必須設(shè)置,本身是一個OGNL表達(dá)式。 format:用于指定日期顯示的格式,如:yyyy-MM-dd HH:mm:ss。 4):可以對設(shè)置的表達(dá)式求值,并將結(jié)果賦值給特定作用域的某個變量,簡單的說,就是定義一個變量,并賦值。 var:變量名。 value:設(shè)置給變量的值,可以是常量和OGNL表達(dá)

34、式。 scope:變量的生存周期。 5):用來生成一個URL var:該URL的引用名稱,如果指定這個屬性,則不會再頁面生成字符串。 action:要訪問的Action的名稱。 value:要訪問的目標(biāo),不過不提供action,就用value作為URL的地址值。6):用來生成HTML的標(biāo)簽。百度 href可以是字符串常量,也可以是OGNL表達(dá)式。7):用來為其他標(biāo)簽添加參數(shù)化設(shè)置。8):可以把其他頁面包含到當(dāng)前頁面上3.1.2 控制標(biāo)簽 主要用來完成流程控制1)、和 =90” 尖子生 =60” /普通學(xué)生 差生2):主要用于對集合實現(xiàn)循環(huán)訪問功能。 value:被循環(huán)訪問的集合,OGNL表達(dá)式

35、。 var:變量名稱,用來引用當(dāng)前循環(huán)訪問的集合元素。 status:返回當(dāng)前循環(huán)的各種信息。u count:集合含有多少個對象。u index:正在循環(huán)的這一項的索引。u even:當(dāng)前遍歷到的對象是否處于列表的偶數(shù)索引位置。u odd:當(dāng)前遍歷到的對象是否處于列表的奇數(shù)索引位置。3.1.3 UI標(biāo)簽 用來生成UI界面,或者為Web提供某些功能支持?;谀0搴椭黝}。1):對應(yīng)HTML的,用于向服務(wù)器端提交數(shù)據(jù)。 name:表單的名稱。 action:處理改表單數(shù)據(jù)的URL。 method:提交方式。2):單行文本框。 name:文本框名稱。 value:文本框中顯示的文字。 maxlengt

36、h:文本框中的最大字符數(shù)。 readonly:是否為只讀。3):多行文本域。 name:文本域名稱。 value:文本域中顯示的文字。 cols:文本域的寬度,以字符數(shù)表示。 rows:文本域的高度,以字符行數(shù)表示。 readonly:是否為只讀。4):提交表單按鈕。 value:按鈕上顯示的文字。5):用于生成一個下拉框。 name:下拉框名稱。 list:生成下拉框的集合。 listKey:生成下拉框的value屬性。 listValue:生成下拉項顯示的文字。 6):生成兩個聯(lián)動的下拉框。 name/doubleName:第一個/第二個下拉框的名稱。 list/doubleList:生成

37、第一個/第二個下拉框集合。 listKey/doubleListKey:生成第一個/第二個下拉框的選項的value屬性。 listValue/doubleListValue:生成第一個/第二個下拉框的選項顯示的文字。3.1.4 Ajax標(biāo)簽datetimepicker是一個日歷控件,使用步驟如下:1) 在項目中引入struts2-dojo-plugin-.jar。2) 導(dǎo)入3) 在中添加。4) 添加標(biāo)簽3.4 使用ActionSupport編碼實現(xiàn)驗證3.4.1 在Action類的業(yè)務(wù)方法中直接驗證。Action類的execute方法中:/ 驗證用戶名if(null=user.g

38、etUserName()this.addFieldError(“erName”,”用戶名不能為空”);3.4.2 重寫validate()方法實現(xiàn)驗證。Overridepublic void validate()/ 驗證用戶名if(null=user.getUserName()this.addFieldError(“erName”,”用戶名不能為空”);3.4.3 使用validateXxx()方法實現(xiàn)驗證。/ 驗證注冊方法public void validateRegister()/ 驗證用戶名if(null=user.getUserName()this.addFieldError(“erN

39、ame”,”用戶名不能為空”);3.5 使用驗證框架實現(xiàn)驗證1)編寫jsp數(shù)據(jù)輸入頁面。2)編寫Action類及其配置文件。3)在與Action同級目錄下創(chuàng)建文件ActionName-validation.xml,其中ActionName與要驗證的Action類名相同。5) 編寫驗證規(guī)則。第四章 攔截器和文件上傳4.1 使用Java實現(xiàn)國際化 國際化是指應(yīng)用程序運行時,可以根據(jù)客戶端中設(shè)置的國家/地區(qū)、語言的不同,而在界面上顯示不同的語言4.1.1 Java中內(nèi)置的國際化支持 獲取Java所支持的地區(qū)/語言的代碼:Locale locales=Locale.getAvailableLocale

40、s ( );for(Locale locale : locales)for(Locale l : locales)/返回該語言環(huán)境的國家或地區(qū)名及代碼System.out.print(l.getDisplayCountry()+” ”+l.getCountry();/返回該語言環(huán)境的語言名稱及代碼System.out.println(l.getDisplayLanguage+” ”+l.getLanguage();4.1.2 JSP頁面的國際化1)添加語言資源文件。2) 配置資源文件的引用(兩種方式)。a) 在struts.xml中配置:b) 在perties中配置:str

41、uts.custom.i18n.resource=wdz。3)在JSP頁面輸出資源文件中的內(nèi)容。4.1.3 Action類的國際化1)繼承ActionSupport。2)使用getText(String key)方法獲取資源文件內(nèi)容。public String execute()addActionMessage(getText(“userName”);return SUCCESS;4.2 攔截器簡介以Action接收參數(shù)和實現(xiàn)數(shù)據(jù)效驗為例,簡單說明攔截器的工作原理: Struts2接收到請求后,創(chuàng)建Action的實例,此時Action中還沒有接收上傳的參數(shù),也沒有對參數(shù)進(jìn)行驗證。 Struts2運行名稱為params的攔截器,把請求中附帶的參數(shù)轉(zhuǎn)存到Action的屬性中。 Struts2再運行名稱為validation的攔截器,對Action屬性中的參數(shù)進(jìn)行驗證。 驗證通過后。運行Action中處理業(yè)務(wù)的方法,并得到處理結(jié)果,如:SUCCESS。 Action把處理結(jié)果返回給validation攔截器,再返回給params攔截器,最后Struts2根據(jù)這個結(jié)果調(diào)用相應(yīng)的試圖來展示數(shù)據(jù)。4.3 Struts2自帶的攔截器1)常用攔截器 params攔截器:負(fù)責(zé)將請求參數(shù)設(shè)置到Action類中對應(yīng)的屬性中。 servletConfig攔截器:將源于Servlet API的各

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論