版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、IT 培訓(xùn)集團(tuán)知識(shí)點(diǎn)列表注:"*"理解級(jí)別"*"掌握級(jí)別"*"應(yīng)用級(jí)別1編號(hào)名稱描述級(jí)別1Strution深入了解Struts2 中的 Action,掌握 5 個(gè)知識(shí)點(diǎn)*2Result 基本原理理解 Result 的基本原理,在 Struts2 中 Result 的功能強(qiáng)大*3課堂練習(xí)實(shí)現(xiàn)功能:1)登錄、2)、3)增刪改查*IT 培訓(xùn)集團(tuán)目錄1. Strution*錯(cuò)誤!未定義書簽。1.1. Action*4【案例 1】Action 演示*錯(cuò)誤!未定義書簽?!景咐?2】 屬性注入*2 錯(cuò)誤!未定義書簽。2. 使用 Result*272
2、.1. Reslut 基本原理*27【案例 3】Reslut 演示*303. 課堂練習(xí)*403.1. 【案例 4】綜合練習(xí) 01*402IT 培訓(xùn)集團(tuán)1.Strution*1.1. Action *1)Action 基本原理 *ü 每次請(qǐng)求都會(huì)創(chuàng)建一個(gè)新的 Action 的實(shí)例因?yàn)槊看握?qǐng)求都對(duì)應(yīng)一個(gè)單獨(dú)的Action,所以丌需要考慮線程安全問(wèn)題。ü Action 對(duì)象將置于ValueStack 的棧頂ü Action 的業(yè)務(wù)(默認(rèn)為execute)根據(jù)輸入算輸出2)在 Action 中如何Session&Applicationü 使用 Actio
3、nContextSessionsession, application 將存放在ValueStack 的 Context 中ü 通過(guò)實(shí)現(xiàn)SessionAware 接口session (更好)首先,新建BaseAction implements SessionAware其次,所有需要session 的類似的,還有: ServletRequestAwareServletResponseAware ServletContextAwareAction extends BaseAction3)使用通配符配置Action3<action name="*_*_*" cla
4、ss="com.tarena.outman.1Action" method="2"><result name="success">/WEB-INF/jsp/day03/3.jsp</result></action><s:property value="#session."/> 戒者<s:property value="#application."/>ActionContext ctx = ActionContext.getCont
5、ext(); Map session = ctx.getSession();戒者M(jìn)ap application = ctx.getApplication();IT 培訓(xùn)集團(tuán)4)給 Action 注入?yún)?shù)(屬性注入)5)在 result 的配置中使用OGNL 表達(dá)式【案例 1】Action 演示 *案例描述業(yè)務(wù):ü 登錄頁(yè)面,知識(shí)點(diǎn):則轉(zhuǎn)入主頁(yè)面,失敗則仍然跳轉(zhuǎn)到登錄頁(yè)面。ü 在 Action 中如何Session&Applicationü 使用通配符配置Actionü 給 Action 注入?yún)?shù)(屬性注入)ü 在 result 的配置中
6、使用OGNL 表達(dá)式參考代碼1)項(xiàng)目結(jié)構(gòu)圖4<result name="success" type="dispatcher">/WEB-INF/jsp/day03/user.jsp?userId=$user.userId</result><param name="rowsPerPage">5</param>IT 培訓(xùn)集團(tuán)2)a.b.準(zhǔn)備好Struts2 的開發(fā)環(huán)境導(dǎo)入 Jar 包配置 web.xmll 在 Action 中如何Session&ApplicationØ 第
7、 1 種(不推薦)使用 ActionContextSession3)新建實(shí)體類User5package com.tarena.outman.day03.entity;public class User private int userId;IT 培訓(xùn)集團(tuán)4)新建 UserDao5)新建 struts.xml6private String username;private String password;public String getPassword() return password;public void setPassword(String password) this.passwor
8、d = password;public String getUsername() return username;public void setUsername(String username) this.username = username;public int getUserId() return userId;public void setUserId(int userId) this.userId = userId;IT 培訓(xùn)集團(tuán)注:loginform和login使用同一個(gè)類LoginAction,這樣是OK的。只要該Action有多個(gè)mo thod,可以使一個(gè)Action對(duì)應(yīng)多個(gè)請(qǐng)
9、求。情況下,我們?cè)诙鄠€(gè)請(qǐng)求很相似時(shí)(戒者多個(gè)請(qǐng)求會(huì)共用一些數(shù)據(jù)時(shí)) 這樣使用。這樣使用的便利之處在于可以Action的數(shù)量。6)新建 LoginAction7""><struts><package name="core" extends="struts-default" namespace="/day03"><action name="loginform" class="com.tarena.outman.day03.LoginAction"
10、;><result name="success">/WEB-INF/jsp/day03/loginform.jsp</result></action><action name="login"class="com.tarena.outman.day03.LoginAction" method="login"><result name="success">/WEB-INF/jsp/day03/main.jsp</result&g
11、t;<result name="fail">/WEB-INF/jsp/day03/loginform.jsp</result></action></package></struts>IT 培訓(xùn)集團(tuán)7)新建 loginform.jsp8private User user;/良編程習(xí)慣:將dao 作為屬性使用private UserDao userDao = new UserDao();public String return "success"public String login() Syste
12、m.out.println(user.getUsername(); System.out.println(user.getPassword();user = userDao.validate(user.getUsername(), user.getPassword(); if (user != null) / 登錄/ 獲得 session 的ActionContext ctx = ActionContext.getContext(); Map<String, Object> session = ctx.getSession(); session.put("day03.us
13、er", user);return "success" else / 登錄失敗return "fail"public User getUser() return user;public void setUser(User user) this.user = user;IT 培訓(xùn)集團(tuán)8)新建 main.jsp9<body><form action="" method="post"><table><tr><td>用戶名:</td><
14、td><input name="user.username" type="text" /></td></tr><tr><td>:</td><td><input name="user.password" type="password" /></td></tr><tr colspan="2"><td><input value="提交&q
15、uot; type="submit" /></td></tr></table></form></body></html>IT 培訓(xùn)集團(tuán)9)a.輸入用戶名“whatisjava”,隨便b.點(diǎn)擊“debug”c.找到“session”10<h1>你好</h1></body></html>IT 培訓(xùn)集團(tuán)d.在“session”中是有數(shù)據(jù)的,使用 ActionContextSession在頁(yè)面從 session 中取數(shù)據(jù)10) 修改 main.jsp11IT
16、 培訓(xùn)集團(tuán)11)不推薦使用ActionContextSession 的方式,因?yàn)檫@種方式的“侵入性”較強(qiáng)。ActionContext 是 Struts2 的 API,如果使用其他框架代替目前的Struts2 框架,而我們實(shí)際頃目中的 Action 的數(shù)量非常龐大,每個(gè)類都修改會(huì)很費(fèi)勁。Ø 第 2 種(推薦)通過(guò)實(shí)現(xiàn)SessionAware 接口12) 新建 BaseActionsession12<s:debug/></body></html>集團(tuán)該類實(shí)現(xiàn)了SessionAware 接口,表明Struts2 在首先,創(chuàng)建出該Action 的對(duì)象,放入
17、“棧頂”BaseAction 時(shí),然后,會(huì)調(diào)用BaseAction 的 setSession(注意:如果是普通的Action,Struts2 在,把session 傳入給 BaseAction 對(duì)象時(shí)僅創(chuàng)建出該 Action 的對(duì)象,然后放入“棧頂”)由此,我們定義了屬性session,以便在之后其他的符為protected。中使用。為了讓子類也能使用,所以按照這樣的機(jī)制,我們可以讓所有的Action(如 LoginActio n)繼承實(shí)現(xiàn)了SessionAware 接口的 BaseAction,當(dāng)需要更換 Struts2 框架為其他框架時(shí),只需要修改BaseAction 即可(另外的框架只要
18、提供一個(gè)類似SessionAware 接口的接口,由BaseAction 繼承)13) 修改 LoginAction 繼承 BaseAction13package com.tarena.outman.day03;import java.util.Map;import erceptor.SessionAware;public class BaseAction implements/為了讓子類也能使用,所以符為protected Map<String, Object>public void(Map<String, Object>
19、session) this.session = session;IT 培訓(xùn)集團(tuán)14),效果是一樣的。如果指定從session 中取數(shù)據(jù),應(yīng)該這樣寫15) 修改 main.jsp14public String form() return "success"public String login() user = userDao.validate(user.getUsername(), user.getPassword();if (user != null) / 登錄/ 直接使用父類中的session,丌再需要這樣獲取/ActionContext ctx = ActionCon
20、text.getContext();/Map<String, Object> session = ctx.getSession(); session.put("day03.user", user);return "success" else / 登錄失敗return "fail"public User getUser() return user;public void setUser(User user) this.user = user;IT 培訓(xùn)集團(tuán)#session'day03.user'表示的意思是從
21、 session 這個(gè) Map 集合中取出key 為"day03.user"的數(shù)據(jù)。同樣的,從其它 3 個(gè)范圍中取數(shù)據(jù)的方式是一樣的,還有其他的接口:ü request 對(duì)應(yīng) ServletRequestAwareü response 對(duì)應(yīng) ServletResponseAwareü session 對(duì)應(yīng) SessionAwareü application 對(duì)應(yīng) ServletContextAware演示:Struts2 提供了許多的Aware使用通配符配置Action配置文件struts.xml 中我們可以在action 的名字里帶
22、“*”星號(hào)作l配符15<action name="*_*"<body><h1>你好,<s:property value="#session'day03.user'.username" /></h1><s:debug/></body></html>集團(tuán)“*_*”指名稱中有“_”下劃線的所有action(如 a_b.action、aaa_bbb.action), 注,“_”下劃線可以是任意字符當(dāng)我們這樣寫時(shí),表示所調(diào)用的Action 丌確定如果“ABC_
23、f.action”,將調(diào)用“ABCAction”,1Action 表示 name 屬性中第 1 個(gè)“*”星號(hào)匹配的字符串同理,當(dāng)我們這樣寫時(shí),表明除了所調(diào)用的Action 丌確定,也丌確定,method="2" 表示名對(duì)應(yīng)的是name 屬性中第 2 個(gè)“*”號(hào)匹配的字符串繼續(xù),還可以這樣,3.jsp 表示 jsp 文件名也丌確定, jsp 文件的名稱不第 3 個(gè)“*”號(hào)匹配的字符串對(duì)應(yīng)16<action name="*_*_*"class="com.tarena.outman.day03.1Action"method="
24、;2"><result name="success">/WEB-INF/jsp/day03/</result>3.jspclass="com.tarena.outman.day03.LoginAction"method="form"><result name="success">/WEB-INF/jsp/day03/loginform.jsp</result></action>IT 培訓(xùn)集團(tuán)演示16)新建 one.jsp17)新建 t
25、wo.jsp18)新建 OneAction17package com.tarena.outman.day03;public class OneAction public String f() System.out.println("OneAction.f()"); return "success"<%page pageEncoding="utf-8"%><html><head><title></title></head><body><h1>
26、Two</h1></body></html><%page pageEncoding="utf-8"%><html><head><title></title></head><body><h1>One</h1></body></html></action>IT 培訓(xùn)集團(tuán)19)新建 TwoAction20)修改 struts.xml18<?xml version="1.0" e
27、ncoding="UTF-8"?><!DOCTYPE struts PUBLIC"-/Apache Software Foundation/DTD Struts Configuration 2.1/EN" ""><struts><package name="core" extends="struts-default" namespace="/day03"><action name=class="com.tarena.o
28、utman.day03." method=><result name="success">/WEB-INF/jsp/day03/</result>3.jsp"2"1Action"*_*_*"package com.tarena.outman.day03;public class TwoAction public String f() System.out.println("TwoAction.f()"); return "success"public St
29、ring g() System.out.println("TwoAction.g()"); return "success"public String g() System.out.println("OneAction.g()"); return "success"IT 培訓(xùn)集團(tuán)21)表示調(diào)用OneAction 的 f(),轉(zhuǎn)向one.jsp 頁(yè)面臺(tái)顯示22)臺(tái)顯示19</action></package></struts>IT 培訓(xùn)集團(tuán)給 Action 注入?yún)?shù)(注入屬性)情況
30、下,為該Action 定義一些屬性, 有些是用于輸入的(比如表單提交用戶名、此外,還有一些屬性是Action 自用的參數(shù)l),有些是用于輸出的(比如員工列表、當(dāng)前頁(yè)數(shù))比如分頁(yè)案例中,每頁(yè)顯示多少行的行數(shù),我們是寫死在ProjectAction的但是,我們可以把它ProjectAction為一個(gè)屬性,方便更改rowsPerPage 就是參數(shù),而參數(shù)注入就是說(shuō),像 rowsPerPage 這樣的參數(shù),我們可以寫在配置文件中。23) 新建 ParamAction20package com.tarena.outman.day03;集團(tuán)24) 修改 struts.xml21IT 培訓(xùn)<?xml
31、version="1.0" encoding="UTF-8"?><!DOCTYPE struts PUBLIC"-/Apache Software Foundation/DTD Struts Configuration 2.1/EN" ""><struts><package name="core" extends="struts-default" namespace="/day03"><action name
32、="param" class="com.tarena.outman.day03.ParamAction" ><param name="param1">ABC</param><param name="param2">10</param></action><!- 給ParamAction賦值 ->public class ParamAction /* input屬性 */ ./* output屬性 */ ./* 參數(shù) */private St
33、ring param1;private int param2;public String execute() System.out.println("param1: " + param1); System.out.println("param2: " + param2); return null;public String getParam1() return param1;public void setParam1(String param1) this.param1 = param1;public int getParam2() return par
34、am2;public void setParam2(int param2) this.param2 = param2;集團(tuán)在 Struts2時(shí),兩個(gè)參數(shù) param1 和 param2 就分別被賦值了。25)臺(tái)打印l 在 result 的配置中使用OGNL 表達(dá)式26)新建 UserAction22</package></struts>IT 培訓(xùn)集團(tuán)27)修改 UserDao28)配置 struts.xml23IT 培訓(xùn)集團(tuán)29)新建 user.jsp30)24<!DOCTYPE struts PUBLIC"-/Apache Software Found
35、ation/DTD Struts Configuration 2.1/EN" ""><struts><package name="core" extends="struts-default" namespace="/day03"><action name="user" class="com.tarena.outman.day03.UserAction"><!- 使用Ognl-><result name=&q
36、uot;success" type="dispatcher">/WEB-INF/jsp/day03/</result></action></package></struts>IT 培訓(xùn)集團(tuán)刷新(案例結(jié)束)【案例 2】屬性注入 *案例描述修改 day02【案例 1】分頁(yè) 02 ,使用屬性注入的方式指定每頁(yè)幾行數(shù)據(jù)(rowsPerPage)參考代碼1)2)請(qǐng)day03 案例 2 源碼.zip修改 ProjectListAction25IT 培訓(xùn)集團(tuán)3)修改 struts.xml26public class Proj
37、ectListAction / inputprivate int page = 1;/ outputprivate List<Project> projectList; private int totalPages;private int rowsPerPage; public String execute() ProjectDao projectDao = new ProjectDao(); projectList = projectDao.findAll(page, rowsPerPage); totalPages = projectDao.getTotalPages(rows
38、PerPage); return "success"public int getPage() return page;public int getTotalPages() return totalPages; public void setTotalPages(int totalPages) this.totalPages = totalPages;public void setPage(int page) this.page = page;public List<Project> getProjectList() return projectList; pub
39、lic void setProjectList(List<Project> projectList) jectList = projectList;public int getRowsPerPage() return rowsPerPage; public void setRowsPerPage(int rowsPerPage) this.rowsPerPage = rowsPerPage;IT 培訓(xùn)集團(tuán)4)localhost:8080/struts01/day01/projectlist.action(案例結(jié)束)2.使用 Result *2.1. Reslut 基
40、本原理 *在 Struts2 中,Result 的功能非常強(qiáng)大的。Reslut 也是類,職責(zé)是生成視圖。27<struts><package name="helloworld" extends="struts-default" namespace="/day01"><action name="projectlist" class="com.tarena.outman.ProjectListAction"><result name="succes
41、s">/WEB-INF/jsp/projectlist.jsp</result></action></package></struts>IT 培訓(xùn)集團(tuán)視圖可以是多種多樣的(比如JSP、JSON、報(bào)表、負(fù)責(zé)。Marker 等),這些視圖都可以由Reslut在 struts.xml 文件中,”struts-default“是由 Struts2 定義package我們找到配置文件 struts-default.xml查看 struts-default.xml 文件,”struts-default“共定義了 10 個(gè)<result-
42、type>28IT 培訓(xùn)集團(tuán)”dispatcher“對(duì)應(yīng) ServletDispatcherResult 類,該類負(fù)責(zé)轉(zhuǎn)發(fā)。當(dāng)我們?cè)?struts.xml 中這樣寫時(shí),表示"dispatcher”所對(duì)應(yīng)的類 org.apache.struts2.dispatcher.ServletDispatcherResult 在起作用注意:如果丌寫 type 屬性,默認(rèn)就是"dispatcher”同理,我們還可以這樣寫29IT 培訓(xùn)集團(tuán)我們還可以這樣寫,Result 常用類型1)2)3)4)5)dispatcherredirect redirectAction streamjso
43、n【案例 3】Result 演示 *1)新建 ResultAction30<!- 使用Ognl-><result name="success">/WEB-INF/jsp/day03/user.jsp?userId=$user.userId</result></action></package></struts>IT 培訓(xùn)集團(tuán)l 重定向redirect2)修改 struts.xml注意:在 struts2 中,轉(zhuǎn)發(fā)和重定向的地址都是從應(yīng)用名之后開始寫;這是struts2 中重定向?qū)懛ú恢爸囟ㄏ驅(qū)懛ǖ呢⑼?/p>
44、之處。3)重定向到day03/user.action31System.out.println("ResultAction.execute()");return "success"IT 培訓(xùn)集團(tuán)與重定向相似的一個(gè)用法:redirectAction4)修改 struts.xml32集團(tuán)l json如果想使用json,必須加入新的Jar 包5)拷貝 jar 包(struts2-json-plugin-.jar)到/lib 目錄下打開 struts-plugin.xml”json-default“包繼承了struts-default,在此基礎(chǔ)上增加
45、了“json”33<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE struts PUBLIC"-/Apache Software Foundation/DTD Struts Configuration 2.0/EN" ""><struts><package name="" extends=""><result-types><result-type name=&q
46、uot;json"struts-defaultjson-defaultuser</result></action></package></struts>集團(tuán)6)修改 ResultAction7)新建 result.jsp34class="org.apache.struts2.json.JSONResult"/></result-types><interceptors><interceptor name="json" class="org.apache.
47、struts2.json.JSONInterceptor"/></interceptors></package></struts>IT 培訓(xùn)集團(tuán)按照轉(zhuǎn)發(fā)的方式:type="dispatcher" 修改 struts.xmlØ8)9)35</h1><s:debug /></body></html>IT 培訓(xùn)集團(tuán)按照 json 的方式:type="json"修改 struts.xmlØ10)11)顯示的是json 字符串增加一些數(shù)據(jù)12)
48、修改 ResultAction36IT 培訓(xùn)集團(tuán)13) 修改 result.jsp37<%page pageEncoding="utf-8"%><%taglib uri="/struts-tags" prefix="s"%><html><head><title></title></head><body><h1><s:property value="username" /></h1>&l
49、t;ul>private String username;private List<String> nameList; public String execute() username = "WhatisJava"nameList = new ArrayList<String>(); nameList.add("Struts"); nameList.add("Hibernate"); nameList.add("Spring");return "success"pu
50、blic String getUsername() return username; public void setUsername(String username) this.username = username;public List<String> getNameList() return nameList;public void setNameList(List<String> nameList) List = nameList;IT 培訓(xùn)集團(tuán)按照轉(zhuǎn)發(fā)的方式:type="dispatcher" 修改 struts.xml&
51、#216;14)15)38<s:iterator value="nameList"><li><s:property /></li></s:iterator></ul><s:debug /></body></html>IT 培訓(xùn)集團(tuán)按照 json 的方式:type="json"修改 struts.xmlØ16)17)39IT 培訓(xùn)集團(tuán)(案例結(jié)束)3.課堂練習(xí)【案例 4】綜合練習(xí) 01【案例 4】代碼,請(qǐng)練習(xí)描述實(shí)現(xiàn)功能:1)登錄、2)、3)
52、增刪改查參考代碼項(xiàng)目結(jié)構(gòu)示意圖40IT 培訓(xùn)集團(tuán)1)請(qǐng) a.b.準(zhǔn)備開發(fā)環(huán)境day03_課堂練習(xí)source.zip 新建項(xiàng)目memory準(zhǔn)備數(shù)據(jù)庫(kù)數(shù)據(jù),執(zhí)行db.sql41IT 培訓(xùn)集團(tuán)42VALUES (98,'pm000002','上班賺錢喂吃肉','2008-02-01','2008-02-20');SQL> INSERT INTO t_projectVALUES (99,'pm000003','騎著上街溜達(dá)','2008-03-01','2008-03-08&
53、#39;);SQL> INSERT INTO t_projectVALUES (100,'pm000004','讓咬我丌喜歡的人 ','2008-03-08','2008-03-10');SQL> INSERT INTO t_projectVALUES (167,'pm000071','name0968058634','2008-05-28','2008-08-26');SQL> INSERT INTO t_projectVALUES (168,
54、39;pm000072','name1255323646','2008-11-05','2009-01-17');SQL> INSERT INTO t_projectVALUES (197,'pm000101','和喝著咖啡徹夜長(zhǎng)談','2008-01-01','2008-02-02');# Table structure for table t_user #SQL> DROP TABLE IF EXISTS t_user; SQL> CREATE TABL
55、E t_user (t_id int(11) NOT NULL AUTO_INCREMENT,t_loginname varchar(50) DEFAULT NULL, t_password varchar(50) DEFAULT NULL,t_name varchar(100) DEFAULT NULL,#真實(shí)PRIMARY KEY (t_id) ENGINE=InnoDB;SQL> INSERT INTO t_user(t_loginname, t_password, t_name) VALUES ('whatisjava','12345','
56、goodman');IT 培訓(xùn)集團(tuán)c.d.e.f.將 9 個(gè) Jar 包拷貝到 lib 目錄下拷貝 css、js 到項(xiàng)目下拷貝 jsp 頁(yè)面文件到項(xiàng)目下( 配置 web.xml情況下會(huì)提供靜態(tài)頁(yè)面)g.建好各個(gè) package在這樣的環(huán)境下開始開發(fā)項(xiàng)目43IT 培訓(xùn)集團(tuán)開始開發(fā)項(xiàng)目習(xí)慣上,我們先寫struts 定義,再寫Action 類,最后寫頁(yè)面功能l2)新建 struts.xml 文件3)新建 BaseAction44IT 培訓(xùn)集團(tuán)4)a.新建 ProjectListAction,繼承 BaseAction ProjectListAction45import java.util.M
57、ap;import erceptor.SessionAwar e;public class BaseAction implements SessionAware protected Map<String, Object> session;public String execute() return "success"public void setSession(Map<String, Object> session) this.session = session;集團(tuán)注:在編程過(guò)程中要一層一層的寫,先構(gòu)建和
58、定義好比如 DAO 可以放到最后來(lái)實(shí)現(xiàn),最后再實(shí)現(xiàn)這些,b.新建 Project注:在寫頃目之前,最好先將屬性及含義都 記住,在頃目過(guò)程中能更快速、避免一些錯(cuò)誤。c.新建 ProjectDao46public ProjectDao getProjectDao() return projectDao;public void setProjectDao(ProjectDao projectDao) jectDao = projectDao;IT 培訓(xùn)集團(tuán)注:有些做好了定義,如果擔(dān)心之后忘記了寫,可以增加/ TODO的注釋,通過(guò)打開task 視圖,跟蹤這些只定義沒(méi)有實(shí)現(xiàn)的雙擊這些“T
59、ODO”就可以定位到?jīng)]有定義的處47package com.tarena.memory.dao;import java.util.List;import com.tarena.memory.entity.Project;public class ProjectDao public List<Project> findAll()return null;IT 培訓(xùn)集團(tuán)d.修改 ProjectListAction5)修改 projectlist.jsp48IT 培訓(xùn)集團(tuán)49<body topMargin="10"><div id="appe
60、nd_parent"></div><table cellSpacing=6 cellPadding=2 width="100%" border="0"><tbody><tr><td><table class="guide" cellSpacing="0" cellPadding="0" width="100%" border="0"><tbody><t
61、r><td>Memory的CRUD</td></tr></tbody></table><br /><form action="" method=""><!-頃目列表開始 -><table class="tableborder" cellSpacing="0" cellPadding="0" width="100%" border="0"><
62、;tbody><tr class="header"><td class="altbg1"><b> </b></td><td class="altbg1"><b>編號(hào)</B></td><td class="altbg1"><b>名稱</B><td class="altbg1"><b>開始時(shí)間</B></td><td class="altbg1">IT 培訓(xùn)集團(tuán)50<b>結(jié)束時(shí)間</B><
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 售前行業(yè)創(chuàng)新試題庫(kù)及答案
- 輻射源考試題庫(kù)及答案
- 教師招聘考試公共基礎(chǔ)知識(shí)題庫(kù)及答案
- C語(yǔ)言數(shù)據(jù)結(jié)構(gòu)面試常見問(wèn)題及答案
- 宜陽(yáng)新區(qū)招聘考試試題及答案
- 20263M(中國(guó))招聘面試題及答案
- 傳統(tǒng)工藝地理試題及答案
- 三臺(tái)縣2025年縣級(jí)事業(yè)單位面向縣內(nèi)鄉(xiāng)鎮(zhèn)公開選調(diào)工作人員(16人)參考題庫(kù)必考題
- 中兵勘察設(shè)計(jì)研究院有限公司2026校招參考題庫(kù)附答案
- 樂(lè)山市教育局2025年下半年公開選調(diào)事業(yè)單位工作人員備考題庫(kù)必考題
- 《交易心理分析》中文
- 2025年海南事業(yè)單位聯(lián)考筆試筆試考題(真題考點(diǎn))及答案
- 2025中國(guó)電信股份有限公司重慶分公司社會(huì)成熟人才招聘筆試考試參考題庫(kù)及答案解析
- 交通安全企業(yè)培訓(xùn)課件
- 充電樁安裝施工方案范本
- 2025年七年級(jí)(上冊(cè))道德與法治期末模擬考試卷及答案(共三套)
- 復(fù)旦大學(xué)-2025年城市定制型商業(yè)醫(yī)療保險(xiǎn)(惠民保)知識(shí)圖譜
- 山東省淄博濱州市2025屆高三下學(xué)期第一次模擬-西班牙語(yǔ)試題(含答案)
- 2025年國(guó)家公務(wù)員考試《申論》題(行政執(zhí)法卷)及參考答案
- 砌筑施工安全教育培訓(xùn)課件
- 上海市中考數(shù)學(xué)百題基礎(chǔ)練習(xí)
評(píng)論
0/150
提交評(píng)論