![Java EE輕量級框架應(yīng)用開發(fā)教程第1章 Struts2基礎(chǔ)知識_第1頁](http://file4.renrendoc.com/view/aee87628a25c5256831bc3d385bdeb0b/aee87628a25c5256831bc3d385bdeb0b1.gif)
![Java EE輕量級框架應(yīng)用開發(fā)教程第1章 Struts2基礎(chǔ)知識_第2頁](http://file4.renrendoc.com/view/aee87628a25c5256831bc3d385bdeb0b/aee87628a25c5256831bc3d385bdeb0b2.gif)
![Java EE輕量級框架應(yīng)用開發(fā)教程第1章 Struts2基礎(chǔ)知識_第3頁](http://file4.renrendoc.com/view/aee87628a25c5256831bc3d385bdeb0b/aee87628a25c5256831bc3d385bdeb0b3.gif)
![Java EE輕量級框架應(yīng)用開發(fā)教程第1章 Struts2基礎(chǔ)知識_第4頁](http://file4.renrendoc.com/view/aee87628a25c5256831bc3d385bdeb0b/aee87628a25c5256831bc3d385bdeb0b4.gif)
![Java EE輕量級框架應(yīng)用開發(fā)教程第1章 Struts2基礎(chǔ)知識_第5頁](http://file4.renrendoc.com/view/aee87628a25c5256831bc3d385bdeb0b/aee87628a25c5256831bc3d385bdeb0b5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第一章Struts2基礎(chǔ)知識本章要點·配置Sturts2運行環(huán)境·
Struts2第一個例子·Struts2框架工作原理·配置Struts2·Action和類型轉(zhuǎn)換配置Sturts2運行環(huán)境Struts已經(jīng)分化成了兩個框架在傳統(tǒng)的Struts1的基礎(chǔ)上,融合了另外的一個優(yōu)秀的
Web框架WebWork的Struts2框架Shale,與原有的Struts1關(guān)聯(lián)很少,使用了全新的設(shè)計思想配置Struts2運行環(huán)境安裝和配置好JDK后,配置JDK環(huán)境變量安裝Java
Web服務(wù)器,選擇開源的Tomcat作為服務(wù)器安裝Struts2框架Struts2框架的安裝Struts的官方網(wǎng)站:,目前最新版本是Struts
2.x下載完畢后,將下載的壓縮包進(jìn)行解壓,然后找到lib文件夾,將類庫struts2-core-2.2.1.jar、xwork2.2.1.jar、freemarker-2.3.1.jar、commons-fileupload-1.2.1.jar以及commons-logging-1.0.4.ja制到Web應(yīng)用的WEB-INF/lib文件夾中·所復(fù)制類庫的作用Struts2的核心庫WebWork的核心庫,需要它的支持OGNL表達(dá)式語言,Struts2支持該EL表達(dá)式表現(xiàn)層框架,定義了Struts2的可視組件主題日志管理文件上傳與下載MyEclipse自帶工具加載Struts2框架·添加Struts框架支持·選擇Struts2框架·加載完成后自動添加了Struts2所需jar包·配置Sturts2運行環(huán)境·
Struts2第一個例子·Struts2框架工作原理·配置Struts2·Action和類型轉(zhuǎn)換Struts2第一個例子實現(xiàn)了一個簡單的登錄功能,用戶打開一個登錄頁面輸入登錄名稱和登錄密碼,如果登錄名稱和登錄密碼輸入正確就進(jìn)入歡迎頁面,否則就重新回到登錄頁面將項目命名為Demo1,功能實現(xiàn)后,目錄結(jié)構(gòu)如下Demo1工作實例Struts2攔截用戶請求·
在web.xml文件中配置Struts2的核心控制器,用來攔截客戶端請求,并把請求轉(zhuǎn)發(fā)到相應(yīng)的Action類來處理,代碼如下:<?xml
version="1.0"
encoding="UTF-8"?><web-app
version="2.5"
xmlns="/xml/ns/javaee"xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/xml/ns/javaee
/xml/ns/javaee/web-app_2_5.xsd"><filter><filter-name>struts2</filter-name><filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class></filter><filter-mapping><filter-name>struts2</filter-name><url-pattern>/*</url-pattern></filter-mapping></web-app>創(chuàng)建視圖頁面login.jsp·
Struts2的標(biāo)簽庫是Struts2的重要組成部分,不僅為表現(xiàn)層提供了數(shù)據(jù)處理能力,而且也提供了基本的流程控制功能以及對國際化、Ajax的支持等諸多功能。通過使用Struts2的標(biāo)簽庫可以最大限度地減少試圖頁面的編碼量。login.jsp使用
Struts2標(biāo)簽庫實現(xiàn)了一個表單,核心代碼如下:<body><div
style="font-size:14px;font-weight:bold">用戶登錄</div><div><s:form
action=""
namespace="/login"><s:textfield
name="username"style="font-size:12px;width:120px;"label="登錄名稱"/><s:password
name="password"style="font-size:12px;width:120px;"label="登錄密碼"/><s:submit
value="登錄"/></s:form></div></body>創(chuàng)建歡迎頁面success.jsp·success.jsp為登錄成功后顯示的歡迎頁面,代碼如下<body><div
style="margin:40px;font-weight:bold">登錄成功,歡迎您!</div></body>創(chuàng)建業(yè)務(wù)控制器LoginAction·
本實例的邏輯控制器組件Action,代碼如下package
com.action;import
com.opensymphony.xwork2.ActionSupport;public
class
LoginAction
extends
ActionSupport
{private
String
username;private
String
password;public
String
getUsername()
{return
username;}public
void
setUsername(String
username)
{this.username
=
username;}public
String
getPassword()
{return
password;}public
void
setPassword(String
password)
{this.password
=
password;}public
String
execute()
throws
Exception{if(this.username.equals("admin")&&this.password.equals("12345")){else
{return
SUCCESS;return
LOGIN;}}}}配置LoginAction當(dāng)Action處理完客戶端請求后就會返回一個字符串,每個字符串都對應(yīng)一個視圖在Struts.xml文件中配置Action時,name屬性定義該Action的名稱,class定義這個Action的實際實現(xiàn)類,method表示checkLogin這個Action由實際實現(xiàn)類LoginAction的checkLogin()方法來處理配置Action時,為每個Action都指定了result元素,每個result元素都定義了一個邏輯視圖,而用
name定義了Action所返回的字符串·struts.xml文件內(nèi)容如下<?xml
version="1.0"
encoding="UTF-8"
?><!DOCTYPE
struts
PUBLIC
"-//Apache
Software
Foundation//DTD
Struts
Configuration2.1//EN"
"/dtds/struts-2.1.dtd"><struts><package
name="default"
extends="struts-default"
namespace="/"><action
name="checkLogin"
class="com.action.LoginAction"><result
name="success">/success.jsp</result><result
name="login">/login.jsp</result></action></package></struts>·說明·
web.xml文件存儲在WEB-INF目錄下struts.xml文件應(yīng)放在WEB-INF\classes目錄下lib下存儲的是所必須的類庫包,如Struts2核心類庫包等效果演示實例部署到Tomcat服務(wù)器上后打開login.jsp頁面在兩個文本框中都輸入admin,單擊“登錄”按鈕,登錄成功后會轉(zhuǎn)向success.jsp頁面login.jspsuccess.jsp本章要點·配置Sturts2運行環(huán)境·
Struts2第一個例子·Struts2框架工作原理·配置Struts2·Action和類型轉(zhuǎn)換Struts2框架工作原理單擊“登錄”按鈕,向服務(wù)器提交登錄請求由于在web.xml文件中配置了Struts2核心控制器FilterDispatcher,此時Struts2就會攔截這個登錄請求由于表單的action值為checkLogin,F(xiàn)ilterDispatcher就會在struts.x配置文件中查找name為checkLogin的Action配置,找到后就會將已經(jīng)攔截的登錄請求轉(zhuǎn)發(fā)給LoginAction來處理由于在struts.xml配置文件中Action的method屬性的值是Checklogin,LoginAction就會調(diào)用自身的checkLogin()方法完成對客戶端的登錄請求的處理。如果登錄成功就返回SUCCESS,登錄失敗就返
回LOGIN由于在struts.xml配置文件中配置LoginAction時指定了<resultname=”success”>/success.jsp</result>,所以當(dāng)LoginAction返回
success時則轉(zhuǎn)向success.jsp頁面,否則轉(zhuǎn)向login.jsp頁面處理流程說明FilterDispatcher是Struts2的核心控制器,負(fù)責(zé)攔截所有的客戶端請求struts.xml文件是Struts2框架的配置文件,主要負(fù)責(zé)配置業(yè)務(wù)邏輯控制器Action,以及用戶自定義的攔截器等,是Struts2各個組件之間的紐帶Action是Struts2的業(yè)務(wù)邏器,負(fù)責(zé)處理客戶端請求并將處理結(jié)果輸出給客戶端,要想處理客戶端請求就必須獲得請求字符串的參數(shù)或從表單提交的數(shù)據(jù)Action在處理完客戶端請求后會通過視圖組件把處理結(jié)果顯示出來本章要點·配置Sturts2運行環(huán)境·
Struts2第一個例子·Struts2框架工作原理·配置Struts2·Action和類型轉(zhuǎn)換配置Struts2任何MVC框架都需要與Web應(yīng)用整合,這就不得不借助/WEB-INF路徑下的web.xml文件,只有配置web.xml文件,Servlet才會被應(yīng)用加載對于Struts2框架而言,需要加載FilterDispatcher配置Web.xml·
Struts2將核心控制器設(shè)計成一個過濾器Filter,而不是一個普通的Servlet,需要在Web.xml文件中配置
FilterDispatcher,代碼片段如下<!--struts過濾器--><filter><!--配置Struts2核心Filter的名字--><filter-name>struts2</filter-name><!--配置Struts2核心Filter的實現(xiàn)類--><filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class></filter><filter-mapping><!--配置Struts2的映射--><filter-name>struts2</filter-name><url-pattern>*</url-pattern></filter-mapping>·
子元素<url-pattern>的值為”*”時表示用戶的所有請求都是使用此框架來處理·配置FilterDispatcher類時,還可以指定一系列的初始化參數(shù)actionPackages參數(shù),用來配置Struts2框架默認(rèn)加載的
Action包結(jié)構(gòu),參數(shù)的值是一個字符串類型的包空間,
如果有多個包空間,可以用英文“,”符號隔開配置Struts2常量,每個<init-param>元素配置一個Struts常量,其中<param-name>子元素指定了常量名,而<param-value>子元素指定了常量值初始化參數(shù)的配置示例<filter><filter-name>struts2</filter-name><filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class><init-param><!--配置Struts2框架默認(rèn)加載的Action包結(jié)構(gòu)--><param-name>actionPackages</param-name><param-value>org.apache.Struts2.showcase.person</param-value></init-param><!--配置Struts2框架的配置提供者類--><init-param><param-name>configProviders</param-name><param-value>superMos.myconfigurationProvider</param-value></init-param></filter>配置Struts2.xmlStruts框架的核心配置文件,主要負(fù)責(zé)管理Struts2框架的業(yè)務(wù)控制器Action,不對業(yè)務(wù)進(jìn)行真正的操作,調(diào)用的是業(yè)務(wù)邏輯組件的功能。相當(dāng)于Service的功能組件,業(yè)務(wù)邏輯組件又封裝了DAO等操作默認(rèn)情況下,Struts2框架將自動加載放到/WEB-INF/classes路徑下的struts.xml文件中,在EclipseIDE環(huán)境下進(jìn)行Struts2的配置,一定要將struts.xml文件放到
src文件夾Struts2框架通過struts.xml文件自動加載資源完成各種所需的功能Struts.xml基本結(jié)構(gòu)<?xml
version="1.0"
encoding="UTF-8"
?><!DOCTYPE
struts
PUBLIC
"-//Apache
Software
Foundation//DTD
Struts
Configuration
2.1//EN"
"/dtds/struts-2.1.dt<struts><!--基本配置--><constant
name="struts.devMode"
value="false"></constant><constant
name="struts.locale"
value="zh_CN"></constant><constant
name="struts.i18n.encoding"
value="UTF-8"></constant><!--包含文件的配置--><include
file=”struts-chat.xml”/><include
file=”struts-hangman.xml”/><!--默認(rèn)包的配置--><package
name="default"
extends="struts-default"
namespace="/"><!—攔截器的配置--><interceptors><interceptor-stack
name="stack"><interceptor-ref
name="checkbox"></interceptor-ref><interceptor-ref
name="params"></interceptor-ref></interceptor-stack></interceptors><!--Action的配置--><action
name="login"
class="com.action.LoginAction"><result
name="success">/success.jsp</result><result
name="login">/login.jsp</result></action><action
name="welcome"><result>/WEB-INF/jsp/welcome.jsp</result></action></package></struts>配置SpertiesStruts2框架的兩個核心配置文件struts.xml文件主要負(fù)責(zé)管理應(yīng)用中的Action映射,以及該Action包含的Result定義等perties文件,該文件定義了Struts
2框架的大性,開發(fā)者可以通過改變這些屬性來滿足應(yīng)用的需求perties文件通常放在Web應(yīng)用的WEB-INF/classesperties文件是一個標(biāo)準(zhǔn)的Properties文件包含了系列的key-value對象,每個key就是一個
Struts
2屬性,該key對應(yīng)的value就是一個Struts
2屬性值·Struts2提供了兩種方式來管理Struts2的屬性,既可以通過perties文件來配置Struts2屬性,也可以通過在struts.xml文件中配置constant元素來配置Struts2屬性,struts.xml配置文件如下<?xml
version="1.0"
encoding="UTF-8"
?><!DOCTYPE
struts
PUBLIC
"-//Apache
Software
Foundation//DTD
Struts
Configuration2.1//EN"
"/dtds/struts-2.1.dtd"><struts><!—通過constant元素配置Struts2的屬性--><constant
name="struts.custom.il8n.resources"
value="messageResource"/><constant
name="struts.locale"
value="zh_CN"></constant><constant
name="struts.i18n.encoding"
value="UTF-8"></constant>……</struts>本章要點·配置Sturts2運行環(huán)境·
Struts2第一個例子·Struts2框架工作原理·配置Struts2·Action和類型轉(zhuǎn)換Action和類型轉(zhuǎn)換在Struts2中,一個Action類代表一次請求或調(diào)用,每個請求的動作都對應(yīng)于一個相應(yīng)的Action類一個Action類是一個獨立的工作單元每次用戶的請求,都會轉(zhuǎn)到一個相應(yīng)的Action類里面,由這個Action類來進(jìn)行處理實現(xiàn)Action控制類·Struts2通常直接使用Action來封裝HTTP請求參數(shù),因此需要為Action中的屬性添加setter()與getter()方法,LoginAction.java代碼如下public
class
LoginAction
{private
String
userName;private
String
password;public
String
execute()
throws
Exception{return
"success";}public
String
getUserName()
{return
userName;}public
void
setUserName(String
userName)
{this.userName
=
userName;}public
String
getPassword()
{return
password;}public
void
setPassword(String
password)
{this.password
=
password;}}·為了更加規(guī)范的開發(fā)Action,Struts提供了一個
Action接口,代碼如下·一般寫Action類通常不用實現(xiàn)該接口,而是繼承該接口的實現(xiàn)類ActionSupportpublic
interface
Action
{public
static
final
java.lang.String
SUCCESS="success";//定義靜態(tài)常量SUCCESS,即字符串successpublic
static
final
java.lang.String
NONE="none";//定義靜態(tài)常量NONE,即字符串nonepublic
static
final
java.lang.String
ERROR="error";//定義靜態(tài)常量ERROR,即字符串errorpublic
static
final
java.lang.String
INPUT="input";//定義靜態(tài)常量INPUT,即字符串inputpublic
static
final
java.lang.String
LOGIN="login";//定義靜態(tài)常量LOGIN,即字符串Loginpublic
abstract
String
execute()throws
Exception;//定義execute()方法}訪問和配置Action在Struts2中,Action已經(jīng)與Servlet
API完全分離,這使得Struts2的Action具有更加靈活和低耦合的特性在實現(xiàn)業(yè)務(wù)邏輯處理時,經(jīng)常需要訪問Servlet中的對象,例如session、request和application等。Struts2供了一個名稱為ActionContext的類可以通過下面的代碼來創(chuàng)建和使用ActionContext·
ActionContext
ac
=
ActionContext.getContext();·ActionContext類的常用方法ActionContext訪問示例創(chuàng)建應(yīng)用程序的根目錄為ch1,添加Struts2應(yīng)用創(chuàng)建登錄頁面login.jsp<body><h2>用戶登錄</h2><s:form
action="checkLogin"
namespace="/"><s:textfield
name="name"label="登錄名稱"size="15"/><s:password
name="pwd"label="登錄密碼"size="15"/><s:submit
value="登錄"/></s:form></body>新建名稱為LoginAction.java的文件,實現(xiàn)Action在struts.xml文件中對LoginAction.java進(jìn)行配置<package
name="default"
extends="struts-default"
namespace="/"><action
name="checkLogin"
class="com.action.LoginAction"
method="checkLogin"><result>/index.jsp</result></action></package>·新建文件名為index.jsp的文件,顯示登錄信息<body
>讀取session中的信息:歡迎<s:property
value="#session.login"/>。<br>讀取application中的信息:歡迎<s:property
value="#application.login"/></body>·在瀏覽器地址欄中輸入http://localhost:8080/ch1/login.jsp,顯示登錄頁面動態(tài)方法調(diào)用·指定method屬性·在struts.xml配置文件中配置<action/>元素的時候,可以為其指定method屬性,可以讓Action調(diào)用指定的方法來處理用戶的請求,而不是使用execute()方法來處理<package
name="default"
extends="struts-default"
namespace="/"><!--使用LoginAction類中的login方法來處理登錄請求--><action
name="login"
class="com.action.LoginAction"
method="login"><result>/index.jsp</result></action><!--使用LoginAction類中的register方法來處理注冊請求--><action
name="register"
class="com.action.LoginAction"
method="register"><result>/register.jsp</result></action></package>·不指定method屬性·
表單元素的action屬性并不是直接等于某個Action的名字,form表單不需要指定method屬性,而是如下形式來指定<s:form
action=”Action名稱!方法名稱”>或<s:form
action=”Action名稱!方法名稱.action”>·使用這種方式將請求提交到Action時,如果在JSP頁面中有多個提交按鈕,每個按鈕的提交事件都交給同一個Action,但是對應(yīng)Action中的不同方法,這時,在struts.xml文件中只需要配置該Action,而不必配置每個方法<s:form
action=”login.login”>….<action
name="login"
class="com.action.LoginAction"><result>/index.jsp</result></action>·使用通配符
在配置<action/>時,需要填寫name、class、method,這三個屬性都支持通配符,這種通配符的調(diào)用是另一種形式的動態(tài)調(diào)用,使
得Action的配置更加方便<package
name="default"
extends="struts-default"
namespace="/"><action
name="login_*"
class="com.action.LoginAction"
method="{1}"><result>/index.jsp</result></action></package>
<action
name="login_*">是定義了一系列的Action,只要用戶請求的URL是login_*的方式,都可以使用此Action來處理
該method屬性使用了一個表達(dá)式{1},該表達(dá)式的意思是使用name
屬性第一個*的值,例如,如果用戶請求的URL是:
”/login_login”,那么調(diào)用LoginAction里login方法,如果用戶請求的URL是:”/login_register”,那么調(diào)用LoginAction里register方法·使用通配符對result元素也可以采用通配符配置<action
name="login_*"
class="com.action.LoginAction"
method="{1}"><result
name="input">/input.jsp</result><result>/{1}.jsp</result></action>當(dāng)處理結(jié)果是input時,會轉(zhuǎn)到/input.jsp頁面,當(dāng)處理結(jié)果是success時,如果login_create.action,則會執(zhí)行
com.action.LoginAction中的create方法,并且跳轉(zhuǎn)到/create.jsp;如果login_delete.action,則會執(zhí)行com.action.LoginAction中的delete方法,并且跳轉(zhuǎn)到/delete.jsp使用Struts2內(nèi)建類型轉(zhuǎn)換器Struts2支持的數(shù)據(jù)類型的自動轉(zhuǎn)換,這種轉(zhuǎn)換以
OGNL(Object-Graph
Navigation
Language)為基礎(chǔ)OGNL的具體實現(xiàn)是:數(shù)據(jù)轉(zhuǎn)移和類型轉(zhuǎn)換數(shù)據(jù)轉(zhuǎn)移就是把頁面上的參數(shù)轉(zhuǎn)換成屬性,或?qū)傩燥@示在頁面上類型轉(zhuǎn)換就是如何將頁面上提交的字符串?dāng)?shù)據(jù)轉(zhuǎn)換成屬性中的int、float等,或反過來簡單類型轉(zhuǎn)換·Struts2內(nèi)建的類型轉(zhuǎn)換器通常都能滿足應(yīng)用需求。將客戶端輸入的數(shù)量和價格分別轉(zhuǎn)換為int和double類型,視圖頁面goods.jsp的內(nèi)容如下<body><h2>添加商品</h2><s:form
action="addAction"
namespace="/"
method="add"><s:textfield
name="name"label="商品名稱"size="15"/><s:textfield
name="price"label="商品價格"size="15"/><s:textfield
name=”num”label="商品數(shù)量"size="15"/><s:submit
value="添加"/></s:form></body>·
實現(xiàn)了添加商品的表單,用戶輸入商品的名稱、價格和數(shù)量。表單提交后,信息被作為字符串傳遞給了服務(wù)器端的Action·AddAction.java的代碼如下·Action中的price和num屬性分別是double和int類型,而客戶端提交的都是字符串格式的數(shù)據(jù),商品價格需要從字符串類型轉(zhuǎn)換為double類型和int類型package
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 建立高效的財務(wù)業(yè)務(wù)運作模式
- 2025年全球及中國工業(yè)級4-芐氧基苯酚行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025年全球及中國石墨片保護(hù)膜行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025年全球及中國消費電子NFC天線行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025年全球及中國旅游廣告和營銷服務(wù)行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025-2030全球非侵入式血流動力學(xué)監(jiān)測解決方案行業(yè)調(diào)研及趨勢分析報告
- 2025年全球及中國光伏舟托行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025年全球及中國晶須碳納米管行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025年全球及中國溴化鈣粉行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025-2030全球高壓鎳氫電池行業(yè)調(diào)研及趨勢分析報告
- 2024年江蘇農(nóng)牧科技職業(yè)學(xué)院高職單招語文歷年參考題庫含答案解析
- 廣聯(lián)達(dá)智慧工地合同范例
- 老年上消化道出血急診診療專家共識2024
- 廣東省廣州黃埔區(qū)2023-2024學(xué)年八年級上學(xué)期期末物理試卷(含答案)
- 醫(yī)院護(hù)理10s管理
- 人教版一年級下冊數(shù)學(xué)第五單元認(rèn)識人民幣練習(xí)
- 學(xué)校安全工作計劃及行事歷
- 《GMP基礎(chǔ)知識培訓(xùn)》課件
- 2025屆江蘇省無錫市天一中學(xué)高一上數(shù)學(xué)期末質(zhì)量檢測試題含解析
- 數(shù)學(xué)家華羅庚課件
- 貴州茅臺酒股份有限公司招聘筆試題庫2024
評論
0/150
提交評論