




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、Struts2 標(biāo)簽絕對(duì)詳解詳細(xì)的說(shuō)明了struts2所有標(biāo)簽由整理版權(quán)屬 以及 原作者。由于標(biāo)簽太多難做目錄索引,如果你覺(jué)得有目錄索引更好,請(qǐng)到/p/myjdemo/downloads/list 下載CHM版本的Struts2標(biāo)簽詳解,謝謝。aa標(biāo)簽創(chuàng)建一個(gè)HTML超鏈接,等價(jià)于HTML 的a href=.示范代碼:登陸action使用action標(biāo)簽可以允許在JSP頁(yè)面中直接調(diào)用Action,因?yàn)樾枰{(diào)用Action,故可以指定需要被調(diào)用Action的name以及namespace。如果指定 了execu
2、teResult參數(shù)的屬性值為true,該標(biāo)簽還會(huì)把Action的處理結(jié)果(視圖支援)包含到本頁(yè)面中來(lái)。action標(biāo)簽的屬性:id:可選屬性,該屬性將會(huì)作為該Action的引用IDname:必填屬性,指定該標(biāo)簽調(diào)用哪個(gè)Actionnamespace:可選,指定該標(biāo)簽調(diào)用的Action所在的namespace.executeResult:可選,指定是否要將Action的處理結(jié)果頁(yè)面包含到本頁(yè)面。默認(rèn)是false,即不包含ignoreContextParams:可選,它指定該頁(yè)面中的請(qǐng)求參數(shù)是否需要傳入調(diào)用的Action、默認(rèn)是false,即將本頁(yè)的請(qǐng)求參數(shù)傳入被調(diào)用的Action。下面是本示例
3、應(yīng)用中的Action類(lèi),包含連個(gè)處理邏輯。代碼如下public class TagAction extednds ActionSupport/封裝用戶(hù)請(qǐng)求參數(shù)的author屬性private String author;/author的get和set的方法,省略public String execute() throws Exceptionreturn done; public String login() throws ExceptionServletActionContext.getRequest().setAttribute(author,getAuthor();return done;
4、上面的Action類(lèi)包含兩個(gè)處理邏輯,可以在struts.xml文件中通過(guò)指定method屬性來(lái)將該Action類(lèi)映射成兩個(gè)邏輯Action。代碼如下succ.jsp loginSucc.jsp .上面配置文件將一個(gè)Action類(lèi)定義成兩個(gè)邏輯Action,可以在JSP頁(yè)面中通過(guò)標(biāo)簽來(lái)調(diào)用這兩個(gè)邏輯Action,部分jsp代碼如下: 下面調(diào)用第一個(gè)Action,并將結(jié)果包含到本頁(yè)面中。下面調(diào)用第二個(gè)Action,并將結(jié)果包含到本頁(yè)面中。阻止本頁(yè)面請(qǐng)求參數(shù)傳入Action 下面調(diào)用第二個(gè)Action,且不將結(jié)果包含到本頁(yè)面中。上面頁(yè)面中,通過(guò)指定executeResult屬性來(lái)控制是否將處理結(jié)果
5、包含到本頁(yè)面中;還可以通過(guò)ignoreContextParams屬性來(lái)決定是否將本頁(yè)面的請(qǐng)求參數(shù)出入Action。actionerror這個(gè)標(biāo)簽負(fù)責(zé)輸出錯(cuò)誤信息到客戶(hù)端,例子如下:Action代碼如下:package lee;import com.opensymphony.xwork2.ActionSupport;public class DemoAction extends ActionSupportOverridepublic String execute() addActionError(第一條錯(cuò)誤消息!); addActionError(第二條錯(cuò)誤消息!); return SUCCES
6、S;JSP頁(yè)面代碼如下:actionmessage這個(gè)標(biāo)簽負(fù)責(zé)輸出提示信息到客戶(hù)端,例子如下:Action代碼如下:package lee;import com.opensymphony.xwork2.ActionSupport;public class DemoAction extends ActionSupportOverridepublic String execute() addActionMessage(第一條普通消息!); addActionMessage(第二條普通消息!); return SUCCESS;JSP頁(yè)面代碼如下:append來(lái)做iterator標(biāo)簽的輔助,將不同it
7、erator中的內(nèi)容合在一個(gè)iterator中。參數(shù)名字是否必須默認(rèn)值可否使用表達(dá)式類(lèi)型描述id否是String用來(lái)保存結(jié)果iterator的對(duì)象在value context中的名字。例子Action類(lèi)public class AppendIteratorTagAction extends ActionSupport private List myList1;private List myList2;private List myList3;public String execute() throws Exception myList1 = new ArrayList(); myList1.a
8、dd(1); myList1.add(2); myList1.add(3); myList2 = new ArrayList(); myList2.add(a); myList2.add(b); myList2.add(c); myList3 = new ArrayList(); myList3.add(A); myList3.add(B); myList3.add(C); return done;public List getMyList1() return myList1; public List getMyList2() return myList2; public List getMy
9、List3() return myList3; 標(biāo)簽使用 beanbean標(biāo)簽用于創(chuàng)建一個(gè)JavaBean的實(shí)例。創(chuàng)建JavaBean實(shí)例時(shí),可以在標(biāo)簽體內(nèi)使用標(biāo)簽為該JavaBean實(shí)例 傳入屬性,要使用這個(gè)標(biāo)簽,需要為該JavaBean類(lèi)提供對(duì)應(yīng)的setter方法。如該JavaBean類(lèi)提供了對(duì)應(yīng)的getter方法,我們就可以訪(fǎng) 問(wèn)對(duì)應(yīng)的屬性。bean標(biāo)簽的屬性:name:必填,指定要實(shí)例化的JavaBean的實(shí)現(xiàn)類(lèi)id:可選。如指定了該屬性,則該Javabean實(shí)例會(huì)被放入StackContext中(不是ValueStack),從而允許直接通過(guò)該id屬性來(lái)訪(fǎng)問(wèn)該JavaBean實(shí)例?!?!
10、注意:在bean標(biāo)簽內(nèi)時(shí),bean標(biāo)簽創(chuàng)建的JavaBean實(shí)例放在valuestack的棧頂,該標(biāo)簽結(jié)束,生成的子集被移出valuestack棧。除非指定了id屬性】下面是個(gè)簡(jiǎn)單的JavaBeanpublic class Person private String name; private int age; /getter和setter方法省略 在jsp頁(yè)面中的代碼:帶id屬性的用法:checkboxcheckbox標(biāo)簽輸出一個(gè)HTML復(fù)選框,等價(jià)于HTML代碼:。 代碼1. 這里value的值是“假”值,fieldValue的值才是真值。當(dāng)value=true表示這個(gè)復(fù)選框被選上。為fa
11、lse時(shí)不選上另外,它在向html轉(zhuǎn)換后會(huì)多出一個(gè)隱藏域,很奇怪。上面的代碼輸出成html是這樣的:代碼1. 2. 性別 checkboxlist復(fù)選框名稱(chēng)必需默認(rèn)類(lèi)型描述fieldValue是trueString指定在復(fù)選框選中時(shí),實(shí)際提交的值復(fù)選框組,對(duì)應(yīng)Action中的集合名稱(chēng)必需默認(rèn)類(lèi)型描述list是無(wú)Cellection Map Enumeration Iterator array要迭代的集合,使用集合中的元素來(lái)設(shè)置各個(gè)選項(xiàng),如果list的屬性為Map則Map的key成為選項(xiàng)的value,Map的value會(huì)成為選項(xiàng)的內(nèi)容listKey否無(wú)String指定集合對(duì)象中的哪個(gè)屬性作為選項(xiàng)
12、的valuelistValue否無(wú)String指定集合對(duì)象中的哪個(gè)屬性作為選項(xiàng)的內(nèi)容例子:checkboxlistTag.jsp comboboxcombobox標(biāo)簽生成一個(gè)單行文本框和下拉列表框的結(jié)合,但兩個(gè)表單元素只對(duì)應(yīng)一個(gè)請(qǐng)求參數(shù),只有單行文本框里的值才包含請(qǐng)求參數(shù),而下拉列表框則只是用于輔助輸入,并沒(méi)有name屬性,也就不會(huì)產(chǎn)生請(qǐng)求參數(shù)。使用該標(biāo)簽時(shí),需要指定一個(gè)list屬性,該list屬性指定的集合將用于生成列表框。例子如下:使用s:combobox生成下拉輸入框使用s:combobox生成下拉輸入框通過(guò)訪(fǎng)問(wèn)上面的JSP頁(yè)面,我們可以看到上面的文本框,用戶(hù)可以自行輸入,可也以選擇下面
13、的checkbox中的內(nèi)容來(lái)進(jìn)行輸入。需要注意的是,此時(shí)的下拉列表僅僅是用于輔助輸入的,并沒(méi)有任何實(shí)際意義,因此不能指定它的listKey和listValue屬性。conponentconponent標(biāo)簽用于使用自定義標(biāo)簽,因?yàn)槭褂米远x組件還是基于主題,模板管理的,因此在使用component標(biāo)簽,常常需要指定如下3個(gè)屬性:theme:自定義組件所使用的主題,默認(rèn)使用xhtml主題。templateDir:指定自定義組件的主題目錄,默認(rèn)使用系統(tǒng)的主題目錄,即template目錄。template:指定自定義組件所使用的模板。此外,還可以component標(biāo)簽中使用param標(biāo)簽來(lái)注入?yún)?shù)的值
14、。例子如下:使用s:component標(biāo)簽使用s:component標(biāo)簽使用自定義主題,自定義主題目錄從Web應(yīng)用根路徑下加載模板,使用ftl模板。使用自定義主題,自定義主題目錄從Web應(yīng)用根路徑下加載模板,使用JSP模板。使用默認(rèn)主題(xhtml),默認(rèn)主題目錄(template)從Web應(yīng)用中加載模板,使用JSP模板。使用自定義主題,自定義主題目錄從/WEB-INF/classes路徑下加載模板,使用ftl模板。上面使用了FreeMarker和JSP模板,F(xiàn)reeMarker模板的ftlCustomTemplate.ftl代碼如下:FreeMarker自定義模板請(qǐng)選擇您喜歡的圖書(shū)JSP模板
15、jspCustomTemplate.jsp的代碼如下:JSP自定義模板請(qǐng)選擇您喜歡的圖書(shū)datedate標(biāo)簽用于格式化輸入一個(gè)日期,還可以計(jì)算指定日期和當(dāng)前時(shí)刻之間的時(shí)差。date屬性:format:可選,如指定該屬性,將根據(jù)該屬性指定的格式來(lái)格式化日期nice:可選,值為true或者false,用于指定是否輸出指定日期和當(dāng)前時(shí)刻的時(shí)差。默認(rèn)是false,即不輸出name:必填,指定要格式化的日期id:可選,指定引用該元素的id值通常,nice屬性和format屬性不同時(shí)指定,(不指定nice屬性時(shí),該屬性值為false)。因?yàn)橹付╪ice為true,代表輸出指定日期和當(dāng)前時(shí)刻的時(shí)差;指定fo
16、rmat屬性,則表明將指定日期按format指定的格式來(lái)個(gè)格式化輸出。如果即沒(méi)有指定format,也沒(méi)指定nice=“true”,則系統(tǒng)會(huì)到國(guó)際化資源文件中尋找key為struts.date.format的消 息,將該消息當(dāng)成格式化文本來(lái)格式化日期。如果無(wú)法找到key為struts.date.format的消息,則默認(rèn)采用 DateFormat.MEDIUM格式輸出??慈缦耲sp代碼:1 nice = false,且指定format=“dd/MM/yyyy”2 nice = true,且指定format=“dd/MM/yyyy”3 指定nice = true4 nice = false,且沒(méi)有
17、指定format當(dāng)沒(méi)有指定nice=“true”屬性,且不指定format屬性時(shí),系統(tǒng)將日期格式化成“2008年01月23日”,這是因?yàn)樵谙到y(tǒng)的全局國(guó)際化資源文件中提供了如下一行:#指定Struts2默認(rèn)的國(guó)際化資源文件datetimepickerdatetimepicker標(biāo)簽就是生成一個(gè)有日期控件的文本輸入框。它有一個(gè)前提就是要在內(nèi)加一個(gè),然后可以在form內(nèi)加上該標(biāo)簽。(1)、靜態(tài)構(gòu)造有初始值的日期輸入項(xiàng)代碼1. (2)、動(dòng)態(tài)構(gòu)造有初始值的日期輸入項(xiàng)代碼1. 在給輸入項(xiàng)動(dòng)態(tài)賦初始值時(shí),要用ONGL的%表達(dá)式,而不能用#表達(dá)式。上面代碼中的date變量需在action里有事選定義.debu
18、g debug標(biāo)簽主要用于輔助測(cè)試,它在頁(yè)面上生成一個(gè)超鏈接,通過(guò)該鏈接可以查看ValueStack和Stack Context 中的所有值信息。使用debug標(biāo)簽只有一個(gè)id屬性,這個(gè)屬性?xún)H僅是該元素一個(gè)引用id。在頁(yè)面上增加標(biāo)簽,通過(guò)debug標(biāo)簽,可以看的系統(tǒng)中ValueStack離得全部信息,并可以看到Stack Context中的屬性。示范代碼:/直接在jsp頁(yè)面上面添加這樣的標(biāo)簽,就可以生產(chǎn)一個(gè)查看debug信息的鏈接divdiv是struts2 ajax中最基礎(chǔ)的標(biāo)簽,其他的標(biāo)簽均和div有關(guān)系。div的最大的用途就是可以異步的更新div中的內(nèi)容。這里寫(xiě)一些div基本的應(yīng)用,其他
19、的等寫(xiě)別的標(biāo)簽的時(shí)候再寫(xiě)。通過(guò)例子說(shuō)明 Initial Content doubleselectdoubleselect標(biāo)簽輸出關(guān)聯(lián)的兩個(gè)HTML列表框,產(chǎn)生聯(lián)動(dòng)效果。名稱(chēng)必需默認(rèn)類(lèi)型描述list是無(wú)Cellection Map Enumeration Iterator array要迭代的集合,使用集合中的元素來(lái)設(shè)置各個(gè)選項(xiàng),如果list的屬性為Map則Map的key成為選項(xiàng)的value,Map的value會(huì)成為選項(xiàng)的內(nèi)容listKey否無(wú)String指定集合對(duì)象中的哪個(gè)屬性作為選項(xiàng)的value,該選項(xiàng)只對(duì)第一個(gè)列表框起作用listValue否無(wú)String指定集合對(duì)象中的哪個(gè)屬性作為選項(xiàng)的內(nèi)
20、容,該選項(xiàng)只對(duì)第一個(gè)列表框起作用headerKey否無(wú)String設(shè)置當(dāng)用戶(hù)選擇了header選項(xiàng)時(shí),提交的的value,如果使用該屬性,不能為該屬性設(shè)置空值headerValue否無(wú)String顯示在頁(yè)面中header選項(xiàng)內(nèi)容emptyOption否falseBooleanmultiple否falseBoolean是否多選size否無(wú)Integer顯示的選項(xiàng)個(gè)數(shù),該選項(xiàng)只對(duì)第一個(gè)列表框起作用doubleId否無(wú)String指定第二個(gè)列表框的IDdoubleList是無(wú)Cellection Map Enumeration Iterator array要迭代的集合doubleListKey否無(wú)S
21、tring指定集合對(duì)象中的哪個(gè)屬性作為選項(xiàng)的value,該選項(xiàng)只對(duì)第二個(gè)列表框起作用doubleListValue否無(wú)String指定集合對(duì)象中的哪個(gè)屬性作為選項(xiàng)的內(nèi)容,該選項(xiàng)只對(duì)第二個(gè)列表框起作用doubleSize否無(wú)Integer選項(xiàng)個(gè)數(shù)doubleName否無(wú)String指定第二個(gè)列表框的name映射doubleValue否無(wú)Object第二個(gè)列表框的初始選種項(xiàng)實(shí)例:elseelse標(biāo)簽用來(lái)控制基本的條件處理流程,通常和if、elseif標(biāo)簽連用。 參數(shù)名字是否必須默認(rèn)值可否使用表達(dá)式類(lèi)型描述id否是String用來(lái)表示該元素,對(duì)于UI和Form標(biāo)簽來(lái)說(shuō)直接轉(zhuǎn)變?yōu)镠TML id屬性te
22、st是是Boolean用來(lái)決定是否顯示標(biāo)簽內(nèi)部?jī)?nèi)容的表達(dá)式例子 Will Not Be Executed Will Be Executed Will Not Be Executedelseifelseif標(biāo)簽用來(lái)控制基本的條件處理流程,通常和if、else標(biāo)簽連用。參數(shù)名字是否必須默認(rèn)值可否使用表達(dá)式類(lèi)型描述id否是String用來(lái)表示該元素,對(duì)于UI和Form標(biāo)簽來(lái)說(shuō)直接轉(zhuǎn)變?yōu)镠TML id屬性test是是Boolean用來(lái)決定是否顯示標(biāo)簽內(nèi)部?jī)?nèi)容的表達(dá)式例子 Will Not Be Executed Will Be Executed Will Not Be Executedfielderr
23、orfielderror標(biāo)簽輸出action的fieldErrors屬性保存的字段錯(cuò)誤,fieldErrors是一個(gè)map類(lèi)型的屬性。Action類(lèi)中這樣定義:public String execute() throws Exception.addFieldErrors(field1, field1 error);addFieldErrors(field2, field2 error);.jsp中輸出錯(cuò)誤信息:file文件選擇組建file標(biāo)簽輸出一個(gè)HTML文件選擇框,等價(jià)于html代碼:。名稱(chēng)必需默認(rèn)類(lèi)型描述accept否inputStringHTML accept屬性,指出接受文件的MIM
24、E類(lèi)型例子:formform標(biāo)簽輸出一個(gè)HTML from 例子: 可以上傳文件的form。generator使用generator標(biāo)簽可以將指定字符串按指定分隔符分成多個(gè)子串,臨時(shí)生成的多個(gè)子串可以使用iterator標(biāo)簽來(lái)迭代輸出??梢赃@樣理解:generator將一個(gè)字符串轉(zhuǎn)化成一個(gè)集合。在該標(biāo)簽的標(biāo)簽體內(nèi),整個(gè)臨時(shí)生成的集合將位于ValueStack的頂端,蛋一旦該標(biāo)簽結(jié)束,該集合將被移出ValueStack。屬性: 1. count :可選屬性,該屬性指定生成集合中元素的總數(shù)。 2. separator :必填屬性,指定用于解析字符串的分隔符。 3. val:必填屬性,指定被解析的字
25、符串。 4. converter:可選屬性,指定一個(gè)轉(zhuǎn)換器,該轉(zhuǎn)換器負(fù)責(zé)將集合匯總的每個(gè)字符串轉(zhuǎn)換成對(duì)象 5. id:可選屬性,如果指定了該屬性,則將生成的集合放在pageContext屬性中 例1:生成一個(gè)簡(jiǎn)單的iterator,并且使用iterator標(biāo)簽打印出內(nèi)容。 例2:生成一個(gè)iterator,使用count屬性。因?yàn)閏ount屬性值為3,所以只有前三個(gè)內(nèi)容(aaa,bbb,ccc)在生成的iterator中。Generate an iterator with count attribute 例3:生成iterator,使用了id屬性,之后生成的對(duì)象放在pageContext中,可以
26、通過(guò)指定的id來(lái)訪(fǎng)問(wèn)。 例4:生成iterator,使用converter屬性,這里的convertor僅僅將每一個(gè)對(duì)象添加了一個(gè)converter-前綴。 public class GeneratorTagAction extends ActionSupport . public Converter getMyConverter() return new Converter() public Object convert(String value) throws Exception return converter-+value; ; . headhead標(biāo)簽主要用于成生HTML主要頁(yè)面的H
27、EAD部分。國(guó)為有些主題需要包含特定的CSS和javascript代碼,而該標(biāo)簽則用于生成對(duì)這此CSS和javaScript代碼的引用。有屬性:1、debug: 使用ajax主題時(shí)將該屬性設(shè)置為true,將開(kāi)啟調(diào)試模式2、calendarcss:jscalendar控件使用的css主題例子:page 1hiddenhidden標(biāo)簽輸出一個(gè)HTML隱藏表單元素,等價(jià)于HTML代碼:。在xhtml主題下,hidden標(biāo)簽與其他的標(biāo)簽不一樣,hidden標(biāo)簽并不輸出表行。xhtml主題直接從simple主題繼承了hidden.ftl模板。例子:i18n該標(biāo)簽用于加載資源包到值堆棧。它可以允許text標(biāo)志訪(fǎng)問(wèn)任何資源包的信息,而不只當(dāng)前action相關(guān)聯(lián)的資源包。參數(shù):名稱(chēng)必需默認(rèn)類(lèi)型描述value是Object/String資源包的類(lèi)路徑(如com.xxxx.resources.AppMsg)id否Object/String用來(lái)標(biāo)識(shí)元素的id。在UI和表單中為HTML的id屬性 例子:HelloWorld=Hello
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 第五單元寫(xiě)作《論證要合理》教學(xué)設(shè)計(jì)-2024-2025學(xué)年統(tǒng)編版語(yǔ)文九年級(jí)上冊(cè)
- 2025年商用半導(dǎo)體項(xiàng)目合作計(jì)劃書(shū)
- 機(jī)械原理 CH11學(xué)習(xí)資料
- 第16課 越算越精彩 教學(xué)設(shè)計(jì) 2024-2025學(xué)年粵教版(2019)初中信息技術(shù)八年級(jí)上冊(cè)
- 老舊小區(qū)基礎(chǔ)配套設(shè)施改造風(fēng)險(xiǎn)評(píng)估與控制
- 第三單元整體教學(xué)設(shè)計(jì)《生命的詩(shī)意》教學(xué)設(shè)計(jì) 2024-2025學(xué)年統(tǒng)編版高中語(yǔ)文必修上冊(cè)
- Unit 1 Animal friends Section B project 教學(xué)設(shè)計(jì) 2024-2025學(xué)年人教版(2024)七年級(jí)英語(yǔ)下冊(cè)
- 2025年甘肅省武威地區(qū)單招職業(yè)傾向性測(cè)試題庫(kù)含答案
- 二零二五幼兒園教師侵權(quán)賠償協(xié)議書(shū)模板
- 二零二五年度電商平臺(tái)商家銷(xiāo)售返利合同
- 盆景造型經(jīng)驗(yàn)
- 2023年廣東省佛山市順德區(qū)小升初數(shù)學(xué)試卷(含答案)
- ICU護(hù)理查房記錄【范本模板】
- 威風(fēng)堂堂進(jìn)行曲
- 銅及銅合金物理冶金基礎(chǔ)-黃銅
- 煤礦信息化管理制度
- 金融科技學(xué)-完整全套課件
- 物理學(xué)史中國(guó)古代物理學(xué)
- 導(dǎo)管滑脫應(yīng)急預(yù)案演練住院患者導(dǎo)尿管道滑脫
- (完整)小學(xué)語(yǔ)文考試專(zhuān)用作文方格紙
- 軟考中級(jí)網(wǎng)絡(luò)工程師學(xué)習(xí)筆記(考點(diǎn)歸納總結(jié)全)
評(píng)論
0/150
提交評(píng)論