




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、OGNLOGNL及其表達(dá)式及其表達(dá)式 目標(biāo)2初步理解使用OGNL的優(yōu)勢(shì), 簡(jiǎn)單的OGNL表達(dá)式初步掌握索引訪問(wèn)掌握對(duì)集合進(jìn)行操作OGNL的值棧特性;lambda表達(dá)式 一OGNL簡(jiǎn)介31 1OGNLOGNL概念概念1 1)對(duì)象圖導(dǎo)航語(yǔ)言)對(duì)象圖導(dǎo)航語(yǔ)言,獲取和設(shè)置屬性的Java對(duì)象。 示例:示例:在JSP頁(yè)面中使用表達(dá)式語(yǔ)言獲取user對(duì)象的username EL表達(dá)式:表達(dá)式: $user.username4 2 2)表達(dá)式)表達(dá)式 OGNLOGNL就是表達(dá)式!表達(dá)式總是有一個(gè)結(jié)果,也就是就是表達(dá)式!表達(dá)式總是有一個(gè)結(jié)果,也就是說(shuō)表達(dá)式總是會(huì)求值出一個(gè)結(jié)果,這個(gè)結(jié)果可能是一說(shuō)表達(dá)式總是會(huì)求值
2、出一個(gè)結(jié)果,這個(gè)結(jié)果可能是一個(gè)字符串(如名稱(chēng)、組織機(jī)構(gòu)代碼證號(hào)等),或者是個(gè)字符串(如名稱(chēng)、組織機(jī)構(gòu)代碼證號(hào)等),或者是一個(gè)布爾值(如是否是一個(gè)布爾值(如是否是VIPVIP客戶(hù)等客戶(hù)等) 3 3)上下文)上下文(context) 上下文就是運(yùn)行環(huán)境,表達(dá)式求值的環(huán)境!而上下文的實(shí)質(zhì)是一組帶名稱(chēng)的對(duì)象集合,即名稱(chēng)名稱(chēng)- -對(duì)象的對(duì)象的集合集合。 示例:示例: Java代碼 name /獲取姓名 環(huán)境?環(huán)境?表達(dá)式指要取誰(shuí)的姓名呢?即獲取在那個(gè)范圍/環(huán)境的姓名對(duì)于不同的環(huán)境/上下文,相同的表達(dá)式會(huì)有不同的結(jié)果! 54)OGNL表達(dá)式語(yǔ)言結(jié)構(gòu)表達(dá)式語(yǔ)言結(jié)構(gòu) Struts 2中的OGNL Contex
3、t實(shí)現(xiàn)者為ActionContextrequestValueStack(值棧,它是根對(duì)象)OGNL Contextparameterssessionapplicationattr說(shuō)明:說(shuō)明:1)當(dāng)Struts2接受一個(gè)請(qǐng)求時(shí),會(huì)迅速創(chuàng)建ActionContext,再創(chuàng)建ValueStack,action ,然后把a(bǔ)ction存放進(jìn)ValueStack,所以action的實(shí)例變量可被OGNL訪問(wèn)。2)訪問(wèn)上下文(Context)中的對(duì)象需要使用#符號(hào)標(biāo)注命名空間,如#application、#session。65 5)根對(duì)象)根對(duì)象 OGNL會(huì)設(shè)定一個(gè)根對(duì)象(root對(duì)象),在Struts2中根
4、對(duì)象就是ValueStack(值棧) 。如果要訪問(wèn)根對(duì)象(即ValueStack)中對(duì)象的屬性,則可以省略#命名空間,直接訪問(wèn)該對(duì)象的屬性即可;根對(duì)象ValueStack的實(shí)現(xiàn)類(lèi)為OgnlValueStack,該對(duì)象不只存放單個(gè)值,而是存一組對(duì)象。在OgnlValueStack類(lèi)里有一個(gè)List類(lèi)型的root變量,就是使用他存放一組對(duì)象;OgnlValueStack類(lèi)包含兩個(gè)重要的屬性,一個(gè)root和一個(gè)context。其中root本質(zhì)上是一個(gè)ArrayList,而context是一個(gè)Map(更確切的說(shuō)是一個(gè)OgnlContext對(duì)象)。Struts2將OgnlValueStack的root變
5、量賦值給了context中的root變量,在OgnlValueStack的root對(duì)象中,保存著調(diào)用Action的實(shí)例。 7在root變量中處于第一位的對(duì)象叫棧頂對(duì)象。通常我們?cè)贠GNL表達(dá)式里直接寫(xiě)上屬性的名稱(chēng)即可訪問(wèn)root變量里對(duì)象的屬性,搜索順序是從棧頂對(duì)象開(kāi)始尋找,如果棧頂對(duì)象不存在該屬性,就會(huì)從第二個(gè)對(duì)象尋找,如果沒(méi)有找到就從第三個(gè)對(duì)象尋找,依次往下訪問(wèn),直到找到為止。 示例:示例: 系統(tǒng)創(chuàng)建了Action實(shí)例后,該Action實(shí)例已經(jīng)被保存到ValueStack中,故無(wú)須書(shū)寫(xiě)#即可訪問(wèn)Action屬性。 示例:示例:nameOgnlValueStack與ActionContext
6、的關(guān)系 在Struts2中,OgnlValueStack是ActionContext的基礎(chǔ),在ActionContext中,有一個(gè)Map類(lèi)型的屬性context,而這個(gè)context就是OgnlValueStack的context對(duì)象,ActionContext中的getSession()、getApplication()等方法,底層都是通過(guò)context.get()來(lái)實(shí)現(xiàn)的。6)ActionContext 、ValueStack 、Stack Context 關(guān)系8ActionContext ActionContext 一次Action調(diào)用都會(huì)創(chuàng)建一個(gè)ActionContext 調(diào)用:Act
7、ionContext context= ActionContext.getContext() ValueStack 由OGNL框架實(shí)現(xiàn) ,可以把它簡(jiǎn)單的看作一個(gè)棧(List) 。Stack Context Stack Context(map):stack上下文,它包含一系列對(duì)象,包括request/session/attr/application map等。 作用:作用:ActionContext是Action上下文,可以得到request, session ,application ValueStack是值棧 存放表單中的值 ,可以是一組值Stack Context 棧上下文 也是用來(lái)存值的
8、 92 2優(yōu)勢(shì)優(yōu)勢(shì) 1)支持對(duì)象方法調(diào)用,如xxx.doSomeSpecial(); 2)支持類(lèi)靜態(tài)的方法調(diào)用和值訪問(wèn) 格式:格式:類(lèi)全名(包括包路徑)方法名 | 值名 示例示例:java.lang.Stringformat(foo %s, bar) 或者 tutorial.MyConstantAPP_NAME; 3)支持賦值操作和表達(dá)式串聯(lián) 示例示例:price=100, discount=0.8, calculatePrice(),這個(gè)表達(dá)式會(huì)返回80; 10 4)訪問(wèn)OGNL上下文(OGNL context)和ActionContext; 5)操作集合(Map、list)對(duì)象 6)用來(lái)簡(jiǎn)
9、化數(shù)據(jù)的訪問(wèn)操作,取代Java代碼,提供更清晰的視圖層實(shí)現(xiàn) 示例:獲取User對(duì)象的username屬性 JSP語(yǔ)句:User user=(User)request.getAttribute(user); String username=user.getUsername(); OGNL語(yǔ)句:$user.username二簡(jiǎn)單的OGNL表達(dá)式111 1作用作用 表達(dá)式的計(jì)算在當(dāng)前對(duì)象的上下文中,一個(gè)鏈簡(jiǎn)單地使用鏈中先前鏈接的結(jié)果用作下一步計(jì)算的當(dāng)前對(duì)象2 2導(dǎo)航鏈的組成導(dǎo)航鏈的組成1)屬性名2)方法調(diào)用3)數(shù)組索引示例:示例:導(dǎo)航鏈表達(dá)式 name.toCharArray()0.numericV
10、alue.toString() ?計(jì)算:計(jì)算:A. 獲取根對(duì)象的name;B. 在String結(jié)果上調(diào)用toCharArray()方法C. 從char數(shù)組結(jié)果中提取第一個(gè)字符?D. 從提取的字符對(duì)象上得到numericValue屬性 該字符被表示為Character對(duì)象,其中有g(shù)etNumericValue()方法E. 在Integer對(duì)象結(jié)果上調(diào)用toString()方法 最終結(jié)果是通過(guò)toString()調(diào)用返回的字符串12 3 3常量常量1 1 )學(xué)符串常量)學(xué)符串常量 以單引號(hào)或雙引號(hào)碼括起的字符串,單個(gè)字符的字符串常量需用雙引號(hào)。 例如:例如: 說(shuō)明:說(shuō)明:不能少單引號(hào),否則會(huì)當(dāng)成根
11、對(duì)象的屬性名 2 2)數(shù)值常量)數(shù)值常量 用單引號(hào)括起來(lái)的字符 3 3)數(shù)值常量、布爾常量、)數(shù)值常量、布爾常量、nullnull常量常量 13 1 1)逗號(hào))逗號(hào)“,”操作符操作符 作用:作用:用于分隔兩個(gè)以上獨(dú)立的表達(dá)式,整個(gè)表達(dá)式的值是最后一個(gè)子表達(dá)式的值 例如例如:name, , # 2 2)花括號(hào))花括號(hào)操作符操作符 作用:作用:用于創(chuàng)建列表,其中元素之間使用逗號(hào)分隔。 例如:例如:三個(gè)元素的列表李,張,王 3 3)inin和和not innot in操作符操作符 作用:作用:用于判斷一個(gè)值是否在集合中例如:判斷一個(gè)對(duì)象是否存在例如:判斷一個(gè)對(duì)象是否存在Lis
12、t集合中集合中? muhahaha boo #、%和$: “#”的用途 144 4) # # 操作符操作符 作用:訪問(wèn)作用:訪問(wèn)OGNLOGNL上下文和上下文和ActionAction上下文上下文 A. #相當(dāng)于ActionContext.getContext(),ActionContext的屬性:parametersparameters:包含當(dāng)前HTTP請(qǐng)求參數(shù)的Map,#parameters.id0作用相當(dāng)于request.getParameter(id) requestrequest:包含當(dāng)前HttpServletRequest的屬性(attribute)的Map,#request.us
13、erName相當(dāng)于request.getAttribute(userName) sessionsession:包含當(dāng)前HttpSession的屬性(attribute)的Map, #session.userName相當(dāng)于session.getAttribute(userName) applicationapplication:包含當(dāng)前應(yīng)用的ServletContext的屬性的Map,#application.userName相當(dāng)于application.getAttribute(userName) attrattr:用于按page-request-session-application順序訪問(wèn)
14、其屬性。 #attr.userName相當(dāng)于按順序在以上三個(gè)范圍(scope)內(nèi)讀取userName屬性,直到找到為止 。B. 用于過(guò)濾和投影(projecting)集合,如books.?#this.price100; C. 構(gòu)造Map,如#foo1:bar1, foo2:bar2。 155 5)“$” $” 操作符操作符用于在國(guó)際化資源文件中,引用用于在國(guó)際化資源文件中,引用OGNLOGNL表達(dá)式表達(dá)式 示例: 在Struts 2框架的配置文件中引用OGNL表達(dá)式 10 100 BAction-test校驗(yàn):數(shù)字必須為$min為$max之間! 16Struts 2配置文件中,引用OGNL表達(dá)
15、式 示例: /register.jsp?name= /register.jsp?name=$ $namename 17 6 6)“%”%”符號(hào)符號(hào) 作用作用:在標(biāo)志的屬性為字符串類(lèi)型時(shí),計(jì)算OGNL表達(dá)式值。 示例示例:在Ognl.jsp中加入以下代碼:%的用途185 5訪問(wèn)訪問(wèn)JavaBeanJavaBean的屬性表達(dá)式的屬性表達(dá)式 例如:例如:有兩個(gè)JavaBean類(lèi),并有一個(gè)employee對(duì)象作為OGNL上下文的根對(duì)象? Public class Address Private String country; Private String city; Private String st
16、reet; Public class Employee Private String name; Private Adress address; 示例:示例:1)表達(dá)式:)表達(dá)式:name java代碼:代碼:employee.getName()2)表達(dá)式:)表達(dá)式:address.country java代碼:代碼:employee.getAddress().getCountry() 196 6調(diào)用靜態(tài)方法和靜態(tài)字段調(diào)用靜態(tài)方法和靜態(tài)字段 格式:格式:classmethod() /調(diào)用靜態(tài)方法 classfield /調(diào)用靜態(tài)字段 說(shuō)明:說(shuō)明:class須給出完整的類(lèi)名,若省略,默認(rèn)值jav
17、a.lang.Math例如:例如:max(5,3,8) /調(diào)用java.lang.Math的max方法 207 7調(diào)用構(gòu)造方法調(diào)用構(gòu)造方法 作用:作用:OGNL支持對(duì)構(gòu)造方法的調(diào)用,從而創(chuàng)建一個(gè)新的對(duì)象例如:new java.util.ArrayList() /須用完整的限定類(lèi)名三索引訪問(wèn) 211 1數(shù)組和列表索引數(shù)組和列表索引 例如:例如: 數(shù)組:array0,list0 /在到第1元素 表達(dá)式:wang,zhang,li1 /得到結(jié)果是第2元素,即list.get(1)222 2JavaBeanJavaBean的索引屬性的索引屬性 格式:格式: public PropertyType ge
18、tPropertyName() public void setPropertyName(PropertyType values) public PropertyType getPropertyName(int index) public void setPropertyName(int index,propertyType value) 作用:作用:獲取和設(shè)置數(shù)組時(shí)使用的屬性 說(shuō)明:說(shuō)明: 需提供兩對(duì)setter/getter方法,一組用于數(shù)組,一組用于數(shù)組中的元素的索引,但非元素的值,僅指向該元素。例如:在某例如:在某JavaBean中,有一個(gè)索引屬性中,有一個(gè)索引屬性interest Pu
19、blic String interest; public String getInterest() return interest; public void setInterest(String interest) erest=interest; public String getInterest(int i) return interesti; public void setInterest(int i,string newInterest) interesti=newInterest; 表達(dá)式:表達(dá)式:interest(2) /作用:調(diào)用作用:調(diào)用getInterest(2
20、)方法方法表達(dá)式:表達(dá)式:interest(2, “Hello”) /作用:設(shè)值時(shí)調(diào)用作用:設(shè)值時(shí)調(diào)用setInterest(2, Hello)四對(duì)集合進(jìn)行操作 231 1創(chuàng)建列表創(chuàng)建列表ListList 語(yǔ)法語(yǔ)法: : e1,e2,e3 示例: 結(jié)果:生成了一HTML Select對(duì)象,可選的內(nèi)容為: name1, name2,name3,默認(rèn)值為:name2。 示例:示例:創(chuàng)建帶有3個(gè)元素的List對(duì)象:name1, name2,name3 相當(dāng)Java代碼:List list =new ArrayList(3); list.add(name1); list.add(name2); lis
21、t.add(name3); return list;使用索引:list0,name1,name2,name31242 2創(chuàng)建數(shù)組創(chuàng)建數(shù)組 例如:new int1,2,3 New int5 /數(shù)組中的元素初始化為0 索引:new int1,2,31 注意:數(shù)組特殊的屬性length,OGNL中可訪問(wèn):array.length 253 3創(chuàng)建創(chuàng)建MapMap對(duì)象集合對(duì)象集合 語(yǔ)法語(yǔ)法:#key1: :value1, , key2: :value2, . 示例: 結(jié)果:代碼生成了一個(gè)HTML Select對(duì)象,有兩個(gè)元素,foo名字表示的內(nèi)容為:foovalue,bar名字表示的內(nèi)容為:barval
22、ue。 示例:示例:創(chuàng)建帶有2個(gè)元素的Map對(duì)象: #foo:foovalue, bar:barvalue相當(dāng)Java代碼:Map map=new HashMap(2); map.put(foo,foovalue) map.put(bar,barvalue) return map;索引:map0,map.first,mapfoo #foo:oovalue, bar:barvalue foo 或.third指定類(lèi)型:#java.util.LinkedHashMapfoo:oovalue, bar:barvalueLinkedHashMap作用:以確保插入元素的順序能夠被保存264 4創(chuàng)建創(chuàng)建se
23、tset集合對(duì)象集合對(duì)象 book1的價(jià)格是: 注意: Set由于是無(wú)序的,所以不能使用下標(biāo)獲取數(shù)據(jù) 即不能使用#books027采用OGNL表達(dá)式創(chuàng)建List/Map集合對(duì)象北京傳智播客教育 如果需要一個(gè)集合元素的時(shí)候(例如List對(duì)象或者M(jìn)ap對(duì)象),可以使用OGNL中同集合相關(guān)的表達(dá)式。使用如下代碼直接生成一個(gè)List對(duì)象: 生成一個(gè)Map對(duì)象:=Set標(biāo)簽用于將某個(gè)值放入指定范圍。scope:指定變量被放置的范圍,該屬性可以接受application、session、request、 page或action。如果沒(méi)有設(shè)置該屬性,則默認(rèn)放置在OGNL Context中。value:賦給變
24、量的值.如果沒(méi)有設(shè)置該屬性,則將ValueStack棧頂?shù)闹蒂x給變量。285 5集合的偽屬性集合的偽屬性 集合的常用方法并不符合JavaBean對(duì)其屬性的訪問(wèn)集合類(lèi)型集合類(lèi)型偽屬性偽屬性O(shè)GNLOGNL表達(dá)式表達(dá)式JavaJava代碼代碼ListSetSizeisEmptyList.sizeset.isEmptyList.size()Set.isEmpty()ListIteratorList.iteratorList.iterator()MapKeys,valuesmap.keysmap.valuesmap.keySet()map.values()SetIteratorset.iterator
25、set.iterator()IteratorNext,hasNextiter.nextiter.hasNextiter.next()iter.hasNext()29五投影、選擇和lambda表達(dá)式 301 1投影投影(projection)(projection) 作用:作用:在一個(gè)集合中對(duì)每一個(gè)元素調(diào)用相同的方法 或抽取相同的屬性,形成新的集合 例如:例如:假設(shè)employess是一個(gè)包含了employee對(duì)象的列表 其表達(dá)式: #312 2選擇選擇(selection)/(selection)/過(guò)濾過(guò)濾 作用:作用:用表達(dá)式從集合中選擇某些元素,并將結(jié)果保存到新
26、的集合中。 例如:例如:若employess是一個(gè)包含了employee對(duì)象的列表,其表達(dá)式: #employess.?#this.salary3000 /返回大于3000的雇員列表 #employess.?#this.salary30000 /返回大于3000的雇員中第1個(gè) 特殊符號(hào):特殊符號(hào): ? 所有滿足選擇邏輯的對(duì)象 - 第一個(gè)滿足選擇邏輯的對(duì)象 $ - 最后一個(gè)滿足選擇邏輯的對(duì)象323 3LambdaLambda表達(dá)式表達(dá)式 作用:OGNL支持Lambda表達(dá)式語(yǔ)法,使用這些語(yǔ)法 可以建立簡(jiǎn)單的lambda函數(shù) 例如:例如:FibonacciFibonacci if n=0 retu
27、rn 0; elseif n=1 return 1; else return fib(n-2)+fib(n-1); fib(0) = 0 fib(1) = 1 fib(11) = 89OGNL的的Lambda表達(dá)式:表達(dá)式: Lambda表達(dá)式必須放在方括號(hào)內(nèi)部放在方括號(hào)內(nèi)部,#this表示表達(dá)式的參數(shù)表示表達(dá)式的參數(shù)。例如:例如:定義了一個(gè)Lambda表達(dá)式, #fib(11) 調(diào)用了表達(dá)式,輸出為:89,其代碼: 六OGNL的值棧特性33值棧值棧(ValueStack)(ValueStack) OGNL上下文中的根對(duì)象可以直接訪問(wèn),而引用上下文中的其他對(duì)象則需要使用“#”來(lái)標(biāo)記 值棧中的任
28、何對(duì)象都可以直接訪問(wèn),而值棧中的任何對(duì)象都可以直接訪問(wèn),而不需要使用不需要使用 “#”#” 示例:示例:值棧中有對(duì)象:student和employee,兩個(gè)對(duì)象都有name屬性, student有學(xué)號(hào)屬性number employee有薪水屬性salary employee先入棧,student后入棧。引用:引用:表達(dá)式表達(dá)式name 訪問(wèn)的就是student 的name屬性(因student對(duì)象位于棧頂)。 表達(dá)式表達(dá)式salary 訪問(wèn)的就是employee的salary屬性。結(jié)論:結(jié)論:訪問(wèn)值棧中的對(duì)象屬性或方法,無(wú)須指明對(duì)象,也不用“#”,就好像值棧中的對(duì)象都是OGNL上下文中的根對(duì)象
29、一樣。查找順序:查找棧內(nèi)的所有對(duì)象(從棧頂?shù)綏5?,直接找到一個(gè)具有你所查找的屬性的對(duì)象 34.N.N語(yǔ)法語(yǔ)法 提問(wèn):提問(wèn):訪問(wèn)訪問(wèn)employeeemployee的的namename屬性,應(yīng)該如何寫(xiě)屬性,應(yīng)該如何寫(xiě)表達(dá)式呢?表達(dá)式呢? 格式:格式:N.xxx (NN.xxx (N是從是從0 0開(kāi)始的整數(shù)開(kāi)始的整數(shù)) ) 作用:作用:使用N.xxx這樣的語(yǔ)法來(lái)指定從哪一個(gè)位置開(kāi)始向下查找對(duì)象的屬性,表達(dá)式1.name訪問(wèn)的就是employee對(duì)象的name屬性。注意:注意:在使用N.xxx語(yǔ)法時(shí),要注意位置序號(hào)的含義,它并不是表示“獲取棧中索引為N的對(duì)象”,而是截取從位置N開(kāi)始的部分棧 35示
30、例:示例:棧中有三個(gè)對(duì)象:Object0,Object1和Object2都有name屬性表達(dá)式name訪問(wèn)的是Object0的name屬性1.name訪問(wèn)的是Object2的name屬性,因?yàn)?是一個(gè)包含Object1和Object2的部分棧,而且只有Object2有name屬性。36.top.top關(guān)鍵字關(guān)鍵字 top用于獲取棧頂?shù)膶?duì)象,結(jié)合N.xxx語(yǔ)法,就可獲取棧中任意位置的對(duì)象。例如:0.top獲取Object0(等同于top), 1.top獲取Object1 2.top獲取Object2, 2.訪問(wèn)Object2 中的name屬性37. .訪問(wèn)靜態(tài)成員訪問(wèn)靜態(tài)成員 除了使用標(biāo)準(zhǔn)的OGNL表達(dá)式訪問(wèn)靜態(tài)字段和靜態(tài)方法外,Struts2還允許你不指定完整的類(lèi)名,而是通過(guò)“vs”前綴來(lái)調(diào)用保存在棧中的靜態(tài)字段和靜態(tài)方法。 vsFOO_PROPERTY vssomeMethod() vs1someMethod()說(shuō)明:說(shuō)明:vs表示表示ValueStack,如果只有,如果只有vs,那么將使用棧頂對(duì)象的類(lèi);,那么將使用棧頂對(duì)象的類(lèi);若在若在vs后面跟上一個(gè)數(shù)字,那么將使用棧中指定位置處的對(duì)象類(lèi)。后面跟上一個(gè)數(shù)字,那么將使用棧中指定位置處的對(duì)象類(lèi)。38. . 值
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 目標(biāo)設(shè)定中的常見(jiàn)誤區(qū)考核試卷
- 學(xué)校文化氛圍對(duì)學(xué)生職業(yè)適應(yīng)能力的培養(yǎng)考核試卷
- 園林工具制造中的復(fù)合材料應(yīng)用研究考核試卷
- 風(fēng)味穩(wěn)定性考核試卷
- 光纖通信網(wǎng)絡(luò)傳輸速率標(biāo)準(zhǔn)考核試卷
- 急救知識(shí)試題庫(kù)+參考答案
- 機(jī)器人科技探索未來(lái)主題班會(huì)課件
- 低碳生活活動(dòng)總結(jié)15篇
- 每周雙講活動(dòng)方案
- 民俗開(kāi)學(xué)儀式活動(dòng)方案
- 18B20溫度采集LCD12864顯示
- 2016-2022年全國(guó)高考英語(yǔ)讀后續(xù)寫(xiě)及概要寫(xiě)作試題真題及范文
- GB/T 17431.2-2010輕集料及其試驗(yàn)方法第2部分:輕集料試驗(yàn)方法
- 茶文化與茶藝實(shí)驗(yàn)指導(dǎo)書(shū)
- 第三章-液液萃取課件
- 質(zhì)量管理部半年總結(jié)PPT
- 2022年德宏傣族景頗族自治州工會(huì)系統(tǒng)招聘考試題庫(kù)及答案解析
- 雪山上的達(dá)娃讀后感范文5篇
- 安全生產(chǎn)基本情況調(diào)研表
- 西方音樂(lè)史名詞解釋復(fù)習(xí)
- 華為自評(píng)審核表 Quality System Audit
評(píng)論
0/150
提交評(píng)論