零點(diǎn)起飛學(xué)Java-Web開(kāi)發(fā)之Struts-2標(biāo)簽庫(kù)教學(xué)課件_第1頁(yè)
零點(diǎn)起飛學(xué)Java-Web開(kāi)發(fā)之Struts-2標(biāo)簽庫(kù)教學(xué)課件_第2頁(yè)
零點(diǎn)起飛學(xué)Java-Web開(kāi)發(fā)之Struts-2標(biāo)簽庫(kù)教學(xué)課件_第3頁(yè)
零點(diǎn)起飛學(xué)Java-Web開(kāi)發(fā)之Struts-2標(biāo)簽庫(kù)教學(xué)課件_第4頁(yè)
零點(diǎn)起飛學(xué)Java-Web開(kāi)發(fā)之Struts-2標(biāo)簽庫(kù)教學(xué)課件_第5頁(yè)
已閱讀5頁(yè),還剩34頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

零點(diǎn)起飛學(xué)JavaWeb開(kāi)發(fā)之Struts2標(biāo)簽庫(kù)零點(diǎn)起飛學(xué)JavaWeb開(kāi)發(fā)之Struts2標(biāo)簽庫(kù)零點(diǎn)起飛學(xué)JavaWeb開(kāi)發(fā)之Struts2標(biāo)簽庫(kù)第21章Struts2標(biāo)簽庫(kù)Struts2框架提供給開(kāi)發(fā)者定義好的標(biāo)簽庫(kù),使用Struts2標(biāo)簽進(jìn)行視圖層開(kāi)發(fā)簡(jiǎn)潔而又功能強(qiáng)大??梢哉f(shuō),Struts2標(biāo)簽是在Struts1基礎(chǔ)上的一個(gè)很大的進(jìn)步。前幾章示例中的JSP文件已經(jīng)在使用Struts2標(biāo)簽了。本章將講解常用標(biāo)簽的使用方法,力求讓讀者能夠準(zhǔn)確掌握它們的用法。21.1Struts2標(biāo)簽庫(kù)概述Struts2標(biāo)簽極大地簡(jiǎn)化了頁(yè)面的輸出,同時(shí)又提供了豐富、強(qiáng)大的功能,下面通過(guò)幾個(gè)方面對(duì)其進(jìn)行介紹。21.1.3

Struts2標(biāo)簽庫(kù)的使用使用Struts2標(biāo)簽庫(kù)必須指定標(biāo)簽庫(kù)定義文件(TLD文件)的位置,該文件記錄了實(shí)現(xiàn)標(biāo)簽功能文件的位置、屬性等信息,JSP容器通過(guò)該文件獲知在什么地方調(diào)用標(biāo)簽庫(kù)。解壓struts2-core-2.3.4.jar文件,讀者可以在META-INF目錄下找到struts-tags.tld文件。21.2Struts2控制標(biāo)簽Struts2控制標(biāo)簽主要包含一些用于實(shí)現(xiàn)分支、循環(huán)等流程控制的標(biāo)簽。使用該類標(biāo)簽可以在JSP文件中方便地進(jìn)行流程控制。下面分別對(duì)這些標(biāo)簽進(jìn)行講解。21.2.1循環(huán)標(biāo)簽iteratoriterator標(biāo)簽主要用來(lái)對(duì)集合屬性進(jìn)行遍歷輸出,其中的集合屬性可能是List、Map或者是數(shù)值。從上面的代碼可以看出iterator標(biāo)簽的使用方法。在使用<s:iterator>標(biāo)簽進(jìn)行輸出時(shí),常用的標(biāo)簽屬性如下所述。id:指定了集合的id。value:該屬性指定即將進(jìn)行遍歷的集合對(duì)象。status:該屬性用來(lái)代表一個(gè)遍歷時(shí)的IteratorStatus實(shí)例,該實(shí)例即當(dāng)前被遍歷到的集合的元素。IteratorStatus常用的方法有以下幾個(gè)。intgetIndex():返回當(dāng)前被遍歷元素的索引值。intgetCount():返回已經(jīng)遍歷元素的總數(shù)。boolean

isEven():判斷當(dāng)前迭代元素是否為偶數(shù)。boolean

isOdd():判斷當(dāng)前迭代元素是否為奇數(shù)。boolean

isFirst():判斷當(dāng)前迭代元素是否為集合中第一個(gè)元素。boolean

isLast():判斷當(dāng)前迭代元素是否為集合中最后一個(gè)元素。21.2.2選擇標(biāo)簽if/elseif/else該標(biāo)簽主要用來(lái)控制流程分支,同Java的流程控制相似,都是用一個(gè)boolean類型的表達(dá)式的值判斷是否進(jìn)行相關(guān)的操作,其格式如下:<s:iftest="">...<s:if><s:elseiftest="">...<s:elseif><s:else>...</s:else>上面3個(gè)標(biāo)簽中的test屬性必須設(shè)置,它是一個(gè)boolean類型的表達(dá)式,如果test的值為true,則進(jìn)行下面的操作。下面通過(guò)一個(gè)例子說(shuō)明其使用方法。21.2.3集合連接標(biāo)簽appendappend標(biāo)簽用于將多個(gè)集合對(duì)象連接在一起,從而組成一個(gè)新的集合。一般來(lái)說(shuō),這樣拼接的目的就是為了使用iterator標(biāo)簽遍歷新的集合。id:用來(lái)指定拼接后生成對(duì)象的id。這樣在使用iterator遍歷時(shí)就可以通過(guò)value引用到該對(duì)象。例如,newList是新生成List對(duì)象的id,在iterator遍歷時(shí),用value="#newList"來(lái)指向該List對(duì)象。<s:param/>:用來(lái)指定要拼接的子對(duì)象。例如myList1和myList2就是兩個(gè)用來(lái)進(jìn)行拼接的子對(duì)象。21.2.4子集標(biāo)簽subset該標(biāo)簽用于獲取某個(gè)集合的子集合,該標(biāo)簽的常用屬性有以下幾種。id:指定了集合元素的ID。source:指定源集合的名字,為一個(gè)字符串。start:為一個(gè)Integer類型,指定子集合從源集合的哪個(gè)元素開(kāi)始獲取,默認(rèn)為0,即從第一個(gè)元素開(kāi)始獲取。count:為一個(gè)Integer類型的值,指定子集合從源集合獲取元素的個(gè)數(shù),默認(rèn)為從start開(kāi)始直到結(jié)尾。21.2.5排序標(biāo)簽sort該標(biāo)簽用來(lái)對(duì)指定的集合進(jìn)行排序,開(kāi)發(fā)者需要指定自己的排序規(guī)則。如果要實(shí)現(xiàn)自己的規(guī)則,只需要實(shí)現(xiàn)Java.util.Comparator接口即可。該標(biāo)簽的常用屬性有以下幾種。id:指定了集合元素的ID。comparator:必填屬性,為一個(gè)Comparator類型,用于指定用戶自定義的Comparator實(shí)例。source:可選屬性,為一個(gè)String類型值,用來(lái)指定被排序的集合名。如果不指定該值,則默認(rèn)對(duì)值棧的棧頂集合進(jìn)行排序。使用sort標(biāo)簽必須指定comparator屬性,如果用戶需要開(kāi)發(fā)自己的comparator,只需要實(shí)現(xiàn)Java.util.Comparator接口并重寫compare()方法即可。21.3數(shù)據(jù)標(biāo)簽數(shù)據(jù)標(biāo)簽用來(lái)提供各種數(shù)據(jù)訪問(wèn)的功能,下面對(duì)一些常用的數(shù)據(jù)標(biāo)簽進(jìn)行介紹。21.3.1控制器調(diào)用標(biāo)簽actionaction標(biāo)簽允許程序員在JSP頁(yè)面中直接調(diào)用struts.xml中配置的Action類。在JSP文件中,可以通過(guò)action標(biāo)簽的屬性引用Action的name和namespace,從而實(shí)現(xiàn)調(diào)用,并且可以顯示調(diào)用的結(jié)果。name:指定了struts.xml文件中定義的業(yè)務(wù)控制器的名字,表示調(diào)用的是該控制器。executeResult:指定了是否指向所調(diào)用Action的result,如果為true,將會(huì)顯示result結(jié)果;否則不顯示。ignoreContextParams:用來(lái)指定是否將當(dāng)前頁(yè)面中的請(qǐng)求參數(shù)傳入調(diào)用的Action。默認(rèn)為false,即傳遞請(qǐng)求參數(shù)到Acton類。第3個(gè)action標(biāo)簽雖然不顯示actionTagAction2執(zhí)行后的result,但是它通過(guò)<s:propertyvalue="#attr.

ActionString"/>去顯示doDefault()方法設(shè)置的ActionString屬性值。21.3.2

JavaBean調(diào)用標(biāo)簽bean該標(biāo)簽用于創(chuàng)建一個(gè)JavaBean實(shí)例,在JSP視圖中可以通過(guò)<s:bean/>標(biāo)簽去創(chuàng)建多個(gè)JavaBean類的實(shí)例,通過(guò)<param.../>參數(shù)給該實(shí)例的屬性賦值,然后在JSP文件中使用該實(shí)例。name:必選屬性,用來(lái)指定調(diào)用的JavaBean的路徑。例如,com.examp.ch21.User說(shuō)明調(diào)用的是User類。id:可選屬性,用來(lái)標(biāo)識(shí)實(shí)例化后的JavaBean對(duì)象。如果指定了id屬性,該實(shí)例對(duì)象就被存入StackContext中,這樣在標(biāo)簽外就可以使用它。21.3.3值棧置頂標(biāo)簽push該標(biāo)簽用來(lái)把一個(gè)值保存在值棧的棧頂,這樣可以方便訪問(wèn)。21.3.4調(diào)試標(biāo)簽debugdebug標(biāo)簽主要用來(lái)進(jìn)行調(diào)試,是Struts2為了調(diào)試提供的一個(gè)輔助功能。該標(biāo)簽可以在頁(yè)面上生成一個(gè)超鏈接,單擊該鏈接可以查看StackContext中的內(nèi)容。21.3.5包含標(biāo)簽includeinclude標(biāo)簽和JSP標(biāo)簽庫(kù)中的include標(biāo)簽類似,使用它可以把其他的靜態(tài)頁(yè)面、JSP頁(yè)面、Servlet包含到當(dāng)前的頁(yè)面中。該標(biāo)簽的value屬性指定了被包含文件的名字,<param>標(biāo)簽用來(lái)給這個(gè)頁(yè)面?zhèn)魅胍恍﹨?shù)。該標(biāo)簽的使用方法和JSP指令元素include的使用方法類似,故這里不再給出示例。21.3.6參數(shù)傳遞標(biāo)簽param該標(biāo)簽一般在其他標(biāo)簽的內(nèi)部使用,用來(lái)給其他的標(biāo)簽傳遞參數(shù)。例如,可以在bean和include標(biāo)簽中使用它。該標(biāo)簽的屬性如下所述。name:用于指定參數(shù)的名字。value:用于設(shè)置參數(shù)值,該屬性為一個(gè)Object類型。21.3.7變量賦值標(biāo)簽set該標(biāo)簽用于在指定的范圍內(nèi)給一個(gè)變量設(shè)置一個(gè)值。該標(biāo)簽主要有以下屬性。name:必填屬性,用于設(shè)置變量的名稱。value:可選屬性,用于指定變量的值。scope:可選屬性,用于指定變量的有效范圍,可以是application、session、request、page或者action。如果沒(méi)有指定,則該變量被放入StackContext中。21.3.8地址標(biāo)簽url該標(biāo)簽用來(lái)生成一個(gè)URL地址,主要有以下屬性。action:用來(lái)指定要訪問(wèn)的Acton類的名字,如果沒(méi)有設(shè)置該屬性,可以使用value作為URL的地址。value:用來(lái)指定生成的URL地址,如果沒(méi)有設(shè)置該屬性,可以使用action聲明該URL地址。includeParams:可選屬性,用來(lái)聲明是否包含請(qǐng)求參數(shù),其值只能為none、all或者get。namespace:可選屬性,用來(lái)指定命名空間。method:可選屬性:用來(lái)指定Action類的方法。encode:可選屬性,用來(lái)指定是否需要encode請(qǐng)求參數(shù)。21.3.9值輸出標(biāo)簽property該標(biāo)簽用來(lái)輸出指定的值,它在JSP文件中經(jīng)常被使用。該標(biāo)簽的屬性如下所述。default:可選屬性,如果輸出的屬性值為null,則用default的值去代替。escape:可選屬性,用來(lái)指定是否escapeHTML代碼。value:可選屬性,用來(lái)指定需要輸出的值,如果沒(méi)有指定該屬性,則輸出值棧棧頂?shù)膶傩灾怠?1.4表單標(biāo)簽Struts2的用戶界面標(biāo)簽可以分為表單標(biāo)簽和非表單標(biāo)簽,表單標(biāo)簽在實(shí)際開(kāi)發(fā)中用的非常廣泛,通過(guò)使用它,可以進(jìn)行用戶數(shù)據(jù)的輸入和用戶交互等操作。Struts2的表單標(biāo)簽有一個(gè)公共父類UIBean,在Struts2的源碼中可以找到這個(gè)類,目錄為src\core\src\main\Java\org\

apache\Struts2\components。所以,所有的表單標(biāo)簽從該父類繼承了一些公共的屬性,可以簡(jiǎn)單地分為以下3類。模板相關(guān)屬性:這些屬性主要用來(lái)指定表單使用的模板和主題,例如theme、template。JavaScript相關(guān)屬性:主要是用來(lái)在客戶端瀏覽器和用戶交互的一些屬性。例如onclick、ondbclick、onmousedown、onmouseup等。通用屬性:這些屬性是所有的表單要素都有的諸如名稱、label、值、標(biāo)題、是否必填等。例如name、label、value、title、required等。21.4.1復(fù)選框標(biāo)簽checkbox

該標(biāo)簽用于顯示用戶輸入的復(fù)選框元素,下面通過(guò)一個(gè)例子來(lái)說(shuō)明。21.4.2復(fù)選框集合標(biāo)簽checkboxlist

該標(biāo)簽可以根據(jù)一個(gè)集合屬性的值創(chuàng)建一系列的復(fù)選框,下面通過(guò)一個(gè)例子來(lái)說(shuō)明其使用方法。label:該checkboxlist顯示的標(biāo)簽。labelposition:用來(lái)指定label相對(duì)于checkboxlist的位置,top表明在checkboxlist的上面。list:指定集合類型的屬性。例如,#user.userlist指向StackContext中user實(shí)例的userlist屬性,它是一個(gè)List類型的屬性。listValue:用來(lái)指定復(fù)選框的提示。例如,listValue="name"將user的name屬性作為提示顯示在復(fù)選框的左側(cè);listValue="value.age"則將user的age屬性作為提示顯示在復(fù)選框的左側(cè)。listKey:用來(lái)指定復(fù)選框的值(value)。例如,如果listKey="name",則以u(píng)ser對(duì)象的name屬性作為復(fù)選框的值。21.4.3組合框標(biāo)簽combobox該標(biāo)簽生成一個(gè)單行文本框和一個(gè)下拉列表框的組合,用戶可以選擇列表框中的值作為輸入也可以在文本框中自由輸入值。該標(biāo)簽的屬性說(shuō)明如下所述。list:必填屬性,該屬性指定的集合類型的變量值將作為下拉列表框的選項(xiàng)。readonly:可選屬性,用來(lái)指定文本框是否為只讀類型,默認(rèn)為false,如果設(shè)置為true,則用戶只能在下拉列表框中選擇,而不能在文本框中輸入。21.4.4日期選擇標(biāo)簽datetimepicker

該標(biāo)簽用來(lái)生成一個(gè)日期、時(shí)間下拉選擇框,當(dāng)單擊該選擇框時(shí),會(huì)彈出一個(gè)選擇窗口,可以在這個(gè)窗口中選擇日期和時(shí)間。使用該標(biāo)簽,可以避免用戶輸入錯(cuò)誤的日期、時(shí)間數(shù)值,同時(shí)該標(biāo)簽可以根據(jù)不同用戶的需要,顯示不同地區(qū)的日期和時(shí)間格式。該標(biāo)簽常用的屬性如下所示。displayFormat:指定日期的顯示格式。displayWeeks:指定日歷能顯示的星期數(shù)目。endDate:指定最后可用日期,例如3000-1-1,則該日期后面的日期值不可用。formatlength:指定日期的顯示格式,該屬性可以是long、short、medium和full一共4個(gè)值。language:指定日期顯示的Locale,如果是簡(jiǎn)體中文,則為zh_CN。startDate:指定最早可用的日期,如果為1900-1-1,則該日期前面的日期不可用。toogleType:指定日期選擇框出現(xiàn)、隱藏的方式,可以為plain、wipe、explode和fade共4個(gè)值。type:指定日期文本框的類型,可以為time或date,分別為時(shí)間選擇框和日期選擇框。value:指定當(dāng)前的日期和時(shí)間,可以使用today表示當(dāng)前的日期。weekStartOn:指定日期選擇框哪一天是一周的第一天,周日是0,周六是6。21.4.5下拉列表框標(biāo)簽selectselect標(biāo)簽用來(lái)創(chuàng)建一個(gè)下拉列表框,通過(guò)其list屬性去指定一個(gè)集合類型的變量,該變量的值為列表框的選項(xiàng),其主要屬性說(shuō)明如下所述。listKey:可選屬性,用來(lái)指定集合類型變量中的某個(gè)屬性為列表框的value。listValue:可選屬性,用于指定集合類型變量的某個(gè)屬性為列表框的標(biāo)簽。multiple:可選屬性,用于指定該列表框是否允許多選。list:必填屬性,用于指定一個(gè)集合類型的變量作為該列表框的數(shù)據(jù)源。21.4.6單選框標(biāo)簽radioradio為一個(gè)單選框,該框中可以有多個(gè)選項(xiàng),但是用戶只能選擇其中的一個(gè)。radio標(biāo)簽的主要屬性和chekboxlist完全相同。例如checkboxlist標(biāo)簽通過(guò)list屬性指定數(shù)據(jù)源,radio標(biāo)簽也可以使用list屬性指定單選框中的各個(gè)選項(xiàng)。由于radio標(biāo)簽的使用方法和checkboxlist類似,這里不再給出示例。21.4.7選項(xiàng)組標(biāo)簽optgroup

該標(biāo)簽用于生成一個(gè)下拉列表框的選項(xiàng)組,一個(gè)下拉列表框可以包含多個(gè)選項(xiàng)組,該標(biāo)簽必須放在select標(biāo)簽中使用。21.4.8其他常用表單標(biāo)簽Struts2還包括一些其他表單標(biāo)簽,如文本區(qū)域標(biāo)簽textarea、密碼標(biāo)簽password和輸入框標(biāo)簽textfield。下面依次介紹這3個(gè)標(biāo)簽。1.文本區(qū)域標(biāo)簽textarea該標(biāo)簽比較常用,它用來(lái)生成一個(gè)文本區(qū)域以接收多行的文本數(shù)據(jù)。其主要屬性及說(shuō)明如下所述。label:指定文本區(qū)域的標(biāo)簽。name:用來(lái)指定文本區(qū)域的名字。cols:用來(lái)指定文本區(qū)域的列數(shù)。rows:用來(lái)指定文本區(qū)域的行數(shù)。2.密碼標(biāo)簽password該標(biāo)簽用來(lái)生成一個(gè)密碼表單域。用戶在輸入數(shù)據(jù)時(shí),該標(biāo)簽會(huì)用特定的字符顯示用戶的輸入。由于該標(biāo)簽出現(xiàn)于本書的大多數(shù)JSP文件中,這里不再給出示例。3.輸入框標(biāo)簽textfield該標(biāo)簽用來(lái)生成一個(gè)單行文本輸入框,在實(shí)際的開(kāi)發(fā)中可以使用size屬性和maxlength屬性來(lái)控制該文本框允許輸入的最多字符數(shù),以及文本框的顯示長(zhǎng)度。21.5非表單標(biāo)簽非表單在頁(yè)面中生成非表單的可視化元素,下面對(duì)常見(jiàn)的這類標(biāo)簽進(jìn)行講解。21.5.1信息顯示標(biāo)簽actionerrror和actionmessage這兩個(gè)標(biāo)簽都用來(lái)輸出Action類對(duì)應(yīng)方法產(chǎn)生的信息,actionerror用來(lái)輸出Action類中g(shù)etActionErrors()方法返回的信息,actionmessage用來(lái)輸出Action類

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論