《輕量級(jí)Java EE程序設(shè)計(jì)及實(shí)踐》課件第4章 Struts2標(biāo)簽庫(kù)_第1頁(yè)
《輕量級(jí)Java EE程序設(shè)計(jì)及實(shí)踐》課件第4章 Struts2標(biāo)簽庫(kù)_第2頁(yè)
《輕量級(jí)Java EE程序設(shè)計(jì)及實(shí)踐》課件第4章 Struts2標(biāo)簽庫(kù)_第3頁(yè)
《輕量級(jí)Java EE程序設(shè)計(jì)及實(shí)踐》課件第4章 Struts2標(biāo)簽庫(kù)_第4頁(yè)
《輕量級(jí)Java EE程序設(shè)計(jì)及實(shí)踐》課件第4章 Struts2標(biāo)簽庫(kù)_第5頁(yè)
已閱讀5頁(yè),還剩20頁(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)介

-1-了解Struts2標(biāo)簽庫(kù)的組成了解值棧的概念掌握OGNL表達(dá)式語(yǔ)法掌握OGNL集合表達(dá)式掌握數(shù)據(jù)標(biāo)簽的使用掌握控制標(biāo)簽的使用了解主題和模板概念及使用掌握表單標(biāo)簽的使用掌握非表單標(biāo)簽的使用目標(biāo)-2-Struts2標(biāo)簽庫(kù)概述使用標(biāo)簽的優(yōu)勢(shì):使用簡(jiǎn)單可維護(hù)性強(qiáng)復(fù)用性高標(biāo)簽庫(kù)分類:-3-導(dǎo)入Struts2標(biāo)簽庫(kù)在JSP頁(yè)面中使用Struts2標(biāo)簽庫(kù)中提供的標(biāo)簽,必須使用taglib指令導(dǎo)入Struts2標(biāo)簽庫(kù)prefix屬性指定標(biāo)簽的前綴,此處指定標(biāo)簽的前綴為“s”,即使用Struts2標(biāo)簽庫(kù)中的任一標(biāo)簽時(shí),前面都應(yīng)加上“s:”,例如“<s:property>”uri屬性指定標(biāo)簽庫(kù)描述文件的路徑,此處設(shè)為“/struts-tags”,與struts-tags.tld文件中的默認(rèn)uri一致,使JSP頁(yè)面具有更好的兼容性<%@taglibprefix="s"uri="/struts-tags"%>-4-OGNL與值棧對(duì)象圖導(dǎo)航語(yǔ)言 ObjectGraphNavigationLanguage,

是Struts2框架默認(rèn)的表達(dá)式語(yǔ)言值棧中的對(duì)象:臨時(shí)對(duì)象模型對(duì)象action對(duì)象-5-OGNL語(yǔ)法根對(duì)象的屬性直接訪問(wèn)非根對(duì)象的屬性使用“#”訪問(wèn)

在Struts2框架中,ValueStack對(duì)象是OGNL的根對(duì)象,所以ValueStack中對(duì)象的屬性可以直接訪問(wèn)訪問(wèn)其他對(duì)象,必須使用“#”parameters對(duì)象:用于訪問(wèn)HTTP請(qǐng)求參數(shù)。例如,#相當(dāng)于調(diào)用HttpServletRequest對(duì)象的getParameter("name")方法request對(duì)象:用于訪問(wèn)HttpServletRequest屬性,例如,#相當(dāng)于調(diào)用getAttribute("name")方法session對(duì)象:用于訪問(wèn)HttpSession對(duì)象,例如,#相當(dāng)于調(diào)用getAttribute("name")方法application對(duì)象:用于訪問(wèn)ServletContext對(duì)象,例如,#相當(dāng)于調(diào)用ServletContext的getAtrribute("name")方法attr對(duì)象:用于按照>request-->session-->application順序訪問(wèn)其屬性-6-OGNL集合表達(dá)式ListMapin: 某個(gè)元素是否在指定的集合對(duì)象中notin: 某個(gè)元素是否不在指定的集合對(duì)象中?: 獲得所有符合邏輯的元素^: 獲得符合邏輯的第一個(gè)元素$: 獲得符合邏輯的最后一個(gè)元素{e1,e2,e3…}#{key1:value1,key2:value2,}-7-數(shù)據(jù)標(biāo)簽數(shù)據(jù)標(biāo)簽主要用來(lái)提供各種數(shù)據(jù)訪問(wèn)功能標(biāo)簽名描述action該標(biāo)簽用來(lái)直接調(diào)用一個(gè)Action,根據(jù)executeResult參數(shù),可以將該Action的處理結(jié)果包含到頁(yè)面中bean該標(biāo)簽用來(lái)創(chuàng)建一個(gè)JavaBean對(duì)象date該標(biāo)簽用來(lái)格式化輸出一個(gè)日期屬性debug該標(biāo)簽用來(lái)生成一個(gè)調(diào)試鏈接,當(dāng)點(diǎn)擊該鏈接時(shí),可以看到當(dāng)前值棧中的內(nèi)容i18n該標(biāo)簽用來(lái)指定國(guó)際化資源文件的baseNameinclude該標(biāo)簽用來(lái)包含其他的頁(yè)面資源param該標(biāo)簽用來(lái)設(shè)置參數(shù)property該標(biāo)簽用來(lái)輸出某個(gè)值,該值可以是值?;駻ctionContext中的值push該標(biāo)簽用來(lái)將某個(gè)值放入值棧set該標(biāo)簽用來(lái)設(shè)置一個(gè)新的變量,并把新變量存儲(chǔ)到特定的范圍中text該標(biāo)簽用來(lái)輸出國(guó)際化信息url該標(biāo)簽用來(lái)生成一個(gè)特定的URL-8-property標(biāo)簽property標(biāo)簽的作用是輸出指定值輸出value屬性指定的值,如果沒有指定value屬性,則默認(rèn)輸出ValueStack棧頂?shù)闹凳纠?.1regsuccess.jsp屬性名是否必須描述default否如果輸出的屬性值為null,則顯示default屬性指定的值escape否默認(rèn)為true,即不解析HTML標(biāo)簽,如果設(shè)定為false則默認(rèn)解析HTML標(biāo)簽value否指定需要輸出的屬性值,如果沒有指定該屬性,則默認(rèn)輸出ValueStack棧頂?shù)闹礽d否指定該元素的標(biāo)識(shí)-9-param標(biāo)簽param標(biāo)簽主要用于為其他標(biāo)簽提供參數(shù)屬性名是否必須描述name否指定被設(shè)置參數(shù)的參數(shù)名value否指定被設(shè)置參數(shù)的參數(shù)值,該值為Object類型id否指定引用該元素的ID<s:paramname="user">zhangsan</s:param><s:paramname="user"value="zhangsan"/><s:paramname="user"value="zhangsan"/>-10-bean標(biāo)簽bean標(biāo)簽主要用于創(chuàng)建一個(gè)JavaBean的實(shí)例屬性名是否必須描述name是該屬性指定要實(shí)例化的JavaBean實(shí)現(xiàn)類id否如果指定了該屬性,則JavaBean實(shí)例就會(huì)放入OgnlContext對(duì)象中,從而允許直接通過(guò)該id屬性來(lái)訪問(wèn)該JavaBean實(shí)例。如果不指定id屬性,JavaBean實(shí)例則被放置在值棧中<s:beanname="com.dh.ch04.model.Person"> <s:paramname="name"value="'zhangsan'"/> <s:paramname="age"value="18"/>

姓名為:<s:propertyvalue="name"/><br/>

年齡為:<s:propertyvalue="age"/></s:bean><s:beanname="com.dh.ch04.model.Person"id="p"> <s:paramname="name"value="'zhangsan'"/> <s:paramname="age"value="18"/></s:bean>姓名為:<s:propertyvalue="#"/><br/>年齡為:<s:propertyvalue="#p.age"/>-11-set標(biāo)簽set標(biāo)簽主要用于將某個(gè)值放入指定的范圍內(nèi)<s:setname="p1"value="#p"/><s:setname="p2"value="#p"scope="application"/><s:setname="p3"value="#p"scope="session"/>屬性名是否必須描述name是設(shè)置變量的名稱scope否用來(lái)指定變量的有效范圍,該屬性值可以是application、session、request、page或action。如果沒有指定該屬性,則默認(rèn)將該變量放置在OgnlContext中value否用來(lái)設(shè)置變量的值,如果沒有指定該屬性,則將ValueStack棧頂?shù)闹蒂x給該變量id否該屬性指定該元素的應(yīng)用ID-12-include標(biāo)簽include標(biāo)簽主要用于將一個(gè)JSP頁(yè)面或一個(gè)Servlet包含到本頁(yè)面中

<%@pagelanguage="java"contentType="text/html;charset=UTF-8"

pageEncoding="UTF-8"%><%@taglibprefix="s"uri="/struts-tags"%><html><head><metahttp-equiv="Content-Type"content="text/html;charset=UTF-8"><title>include標(biāo)簽</title></head><body>

<s:includevalue="file.jsp"/></body></html>屬性名是否必須描述value是該屬性指定需要被包含的JSP頁(yè)面或Servletid否該屬性指定該元素的應(yīng)用ID-13-url標(biāo)簽url標(biāo)簽主要用于生成一個(gè)URL地址屬性名是否必須描述action否指定生成的URL地址為哪個(gè)Action,如果action沒有提供值,就使用value作為URL的地址值value否指定生成URL的地址值,如果value沒有提供值,就使用action屬性指定的Action作為URL地址includeParams否指定是否包含請(qǐng)求參數(shù),該屬性的值可為none、get或allscheme否設(shè)定scheme屬性namespace否指定命名空間,與action結(jié)合使用,而與value結(jié)合使用時(shí)沒有意義method否指定使用Action的方法encode否指定是否需要對(duì)請(qǐng)求參數(shù)進(jìn)行編碼includeContext否指定是否需要將當(dāng)前上下文包含在URL地址中anchor否指定URL的錨點(diǎn)id否指定該url元素的引用ID,使用該屬性時(shí),生成的URL不會(huì)在頁(yè)面上輸出,但可以引用escapeAmp否指定是否將特殊符號(hào)“&”解析成實(shí)體“&”-14-控制標(biāo)簽數(shù)據(jù)標(biāo)簽主要用于完成流程控制,例如分支、循環(huán)等操作,也可以完成對(duì)集合的合并、排序等操作

標(biāo)簽名描述if該標(biāo)簽用于控制選擇輸出elseIf/elseif該標(biāo)簽同if標(biāo)簽結(jié)合使用,用來(lái)控制選擇輸出else該標(biāo)簽同if標(biāo)簽結(jié)合使用,用來(lái)控制選擇輸出append該標(biāo)簽用于將多個(gè)集合拼接成一個(gè)集合generator該標(biāo)簽是一個(gè)字符串解析器,用來(lái)將一個(gè)字符串解析成一個(gè)集合iterator該標(biāo)簽是一個(gè)迭代器,用來(lái)迭代輸出集合中的數(shù)據(jù)merge該標(biāo)簽用于將多個(gè)集合拼接成一個(gè)集合,在使用方式上與append有區(qū)別sort該標(biāo)簽用于對(duì)集合進(jìn)行排序subset該標(biāo)簽用于截取集合的部分集合,形成新的子集合-15-if/elseif/else標(biāo)簽if、elseif、else這3個(gè)標(biāo)簽都用來(lái)進(jìn)行分支控制。其中,if和elseif標(biāo)簽利用test屬性的值來(lái)決定是否計(jì)算并輸出標(biāo)簽體的內(nèi)容

<!--判斷成績(jī)是否及格,不及格,良,優(yōu)--><s:setname="score"value="99"/><s:iftest="%{#score<60}">

成績(jī)?yōu)椋翰患案?lt;/s:if><s:elseiftest="%{#score>=60&&#score<80}">

成績(jī)?yōu)椋杭案?lt;/s:elseif><s:elseiftest="%{#score>=80&&#score<90}">

成績(jī)?yōu)椋毫?lt;/s:elseif><s:else>

成績(jī)?yōu)椋簝?yōu)</s:else>示例4.7if-elseif-else.jsp

-16-iterator標(biāo)簽iterator標(biāo)簽主要用于對(duì)集合進(jìn)行迭代,其中集合類型可以是List、Set、Map或數(shù)組<tableborder=1width=200> <s:iteratorvalue="{'JavaSE程序設(shè)計(jì)教程', 'JavaEE輕量級(jí)框架-S2SH', 'JavaWeb程序設(shè)計(jì)'}"id="bookName"> <tr> <td><s:propertyvalue="bookName"/></td> </tr> </s:iterator></table>屬性名是否必須描述value否指定迭代集合,通常使用OGNL表達(dá)式指定。如果沒有指定value屬性,則使用ValueStack棧頂?shù)募?/p>

id否指定集合中元素的IDstatus否指定迭代時(shí)的IteratorStatus實(shí)例,用于獲取迭代狀態(tài)示例4.8iterator.jsp

-17-主題和模板模板是一個(gè)標(biāo)簽的顯示風(fēng)格

多個(gè)模板構(gòu)成一個(gè)主題Struts2框架默認(rèn)主題:通過(guò)下面幾種方式使用主題:通過(guò)設(shè)定特定UI標(biāo)簽中的theme屬性來(lái)指定主題通過(guò)設(shè)定特定UI標(biāo)簽外圍form標(biāo)簽的theme屬性來(lái)指定主題通過(guò)取得page范圍內(nèi)名稱為theme的屬性值來(lái)確定主題通過(guò)取得request范圍內(nèi)名稱為theme的屬性值來(lái)確定主題通過(guò)取得session范圍內(nèi)名稱為theme的屬性值來(lái)確定主題通過(guò)取得application范圍內(nèi)名稱為theme的屬性值來(lái)確定主題通過(guò)取得名為struts.ui.theme的常量值來(lái)確定主題,該常量默認(rèn)值為xhtml,可以在struts.xml或perties文件中配置-18-表單標(biāo)簽數(shù)據(jù)標(biāo)簽主要用于進(jìn)行

數(shù)據(jù)的輸入和用戶交互等操作Struts2提供了很多表單標(biāo)簽,

大部分表單標(biāo)簽和

HTML表單元素之間一一對(duì)應(yīng)

CheckboxlistComboboxFileFormHiddenselectoptiontransferselectradiooptgrouptokenTextareapasswordtextfiledsubmitreset-19-checkboxlist標(biāo)簽checkboxlist標(biāo)簽可以一次創(chuàng)建多個(gè)復(fù)選框<!--使用簡(jiǎn)單集合對(duì)象生成多個(gè)復(fù)選框--><s:checkboxlistname="books"labelposition="top"label="選擇您喜歡的圖書" list="{'JavaSE程序設(shè)計(jì)教程','JavaEE輕量級(jí)框架-S2SH','JavaWeb程序設(shè)計(jì)'}"/><!--使用簡(jiǎn)單Map對(duì)象生成多個(gè)復(fù)選框--><s:checkboxlistname="books1"labelposition="top"label="請(qǐng)選擇圖書的出版日期" list="#{'JavaSE程序設(shè)計(jì)教程':'2010年7月', 'JavaEE輕量級(jí)框架-S2SH':'2010年8月', 'JavaWeb程序設(shè)計(jì)':'2010年9月'}" listKey="key"listValue="value"/>示例4.9checkboxlist.jsp

屬性名是否必須描述list是指定集合屬性值。如果list屬性為一個(gè)Map類型(key-value對(duì)),在默認(rèn)情況下,key賦值給標(biāo)簽的value,value則對(duì)應(yīng)標(biāo)簽的LabellistKey否指定集合元素中的某個(gè)屬性作為復(fù)選框的value。如果集合為Map類型則可以使用key和value分別代表Map對(duì)象的key和value作為復(fù)選框的valuelistValue否指定集合元素中的某個(gè)屬性作為復(fù)選框的label。如果集合為Map類型則可以使用key和value分別代表Map對(duì)象的key和value作為復(fù)選框的Label-20-optiontransferselect標(biāo)簽optiontransferselect標(biāo)簽創(chuàng)建兩個(gè)選擇項(xiàng)以及轉(zhuǎn)移下拉列表項(xiàng)

<s:optiontransferselectlist="{'會(huì)計(jì)','出納','倉(cāng)庫(kù)管理員'}" headerKey="headerKey"headerValue="請(qǐng)選擇"doubleHeaderValue="請(qǐng)選擇"doubleHeaderKey="doubleHeaderKey"name="leftRecords"leftTitle="未選角色" rightTitle="已選角色"doubleList="'總經(jīng)理','董事長(zhǎng)'"doubleName="rightRecords"/>示例4.10optiontransferselect.jsp

-21-optgroup標(biāo)簽optgroup標(biāo)簽生成一個(gè)下拉列表框的選項(xiàng)組<s:selectlabel="請(qǐng)選擇"name="select"list="{'開發(fā)工具','Web應(yīng)用'}"><s:optgrouplabel="開發(fā)語(yǔ)言" list="#{'Java':'Java','C#':'C#','C++':'C++','Dephi':'Dephi'}"/><s:optgrouplabel="技術(shù)圖書"list="#{'JavaSE程序設(shè)計(jì)教程':'JavaSE程序設(shè)計(jì)教程','JavaEE輕量級(jí)框架-S2SH':'JavaEE輕量級(jí)框架-S2SH','JavaWeb程序設(shè)計(jì)':'JavaWeb程序設(shè)計(jì)'}"/></s:select>示例4.11optgroup.jsp

-22-非表單標(biāo)簽非表單標(biāo)簽用來(lái)生成頁(yè)面中不存在于表單中的可視化元素標(biāo)簽名描述actionerror該標(biāo)簽用來(lái)輸出Action中g(shù)etActionErrors()方法返回的異常信息actionmessage該標(biāo)簽用來(lái)輸出Action中g(shù)etActionMessage()方法返回的信息component該標(biāo)簽用來(lái)生成一個(gè)自定義組件div該標(biāo)簽用來(lái)生成一個(gè)div片段fielderror該標(biāo)簽用來(lái)輸出異常提示信息,如果Action實(shí)例存在表單域的類型轉(zhuǎn)換錯(cuò)誤,校驗(yàn)錯(cuò)誤,該標(biāo)簽負(fù)責(zé)輸出這些信息tabbedPanel該標(biāo)簽用來(lái)生成HTML頁(yè)面中的Tab頁(yè)tree該標(biāo)簽用來(lái)生成一個(gè)樹形結(jié)構(gòu)treenode該標(biāo)簽用來(lái)生成樹形結(jié)構(gòu)的節(jié)點(diǎn)-23-

溫馨提示

  • 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論