![《輕量級Java EE程序設計及實踐》課件第4章 Struts2標簽庫_第1頁](http://file4.renrendoc.com/view12/M09/01/0B/wKhkGWdlDkyAO9RGAAOUYUDSYNg738.jpg)
![《輕量級Java EE程序設計及實踐》課件第4章 Struts2標簽庫_第2頁](http://file4.renrendoc.com/view12/M09/01/0B/wKhkGWdlDkyAO9RGAAOUYUDSYNg7382.jpg)
![《輕量級Java EE程序設計及實踐》課件第4章 Struts2標簽庫_第3頁](http://file4.renrendoc.com/view12/M09/01/0B/wKhkGWdlDkyAO9RGAAOUYUDSYNg7383.jpg)
![《輕量級Java EE程序設計及實踐》課件第4章 Struts2標簽庫_第4頁](http://file4.renrendoc.com/view12/M09/01/0B/wKhkGWdlDkyAO9RGAAOUYUDSYNg7384.jpg)
![《輕量級Java EE程序設計及實踐》課件第4章 Struts2標簽庫_第5頁](http://file4.renrendoc.com/view12/M09/01/0B/wKhkGWdlDkyAO9RGAAOUYUDSYNg7385.jpg)
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
-1-了解Struts2標簽庫的組成了解值棧的概念掌握OGNL表達式語法掌握OGNL集合表達式掌握數(shù)據(jù)標簽的使用掌握控制標簽的使用了解主題和模板概念及使用掌握表單標簽的使用掌握非表單標簽的使用目標-2-Struts2標簽庫概述使用標簽的優(yōu)勢:使用簡單可維護性強復用性高標簽庫分類:-3-導入Struts2標簽庫在JSP頁面中使用Struts2標簽庫中提供的標簽,必須使用taglib指令導入Struts2標簽庫prefix屬性指定標簽的前綴,此處指定標簽的前綴為“s”,即使用Struts2標簽庫中的任一標簽時,前面都應加上“s:”,例如“<s:property>”uri屬性指定標簽庫描述文件的路徑,此處設為“/struts-tags”,與struts-tags.tld文件中的默認uri一致,使JSP頁面具有更好的兼容性<%@taglibprefix="s"uri="/struts-tags"%>-4-OGNL與值棧對象圖導航語言 ObjectGraphNavigationLanguage,
是Struts2框架默認的表達式語言值棧中的對象:臨時對象模型對象action對象-5-OGNL語法根對象的屬性直接訪問非根對象的屬性使用“#”訪問
在Struts2框架中,ValueStack對象是OGNL的根對象,所以ValueStack中對象的屬性可以直接訪問訪問其他對象,必須使用“#”parameters對象:用于訪問HTTP請求參數(shù)。例如,#相當于調用HttpServletRequest對象的getParameter("name")方法request對象:用于訪問HttpServletRequest屬性,例如,#相當于調用getAttribute("name")方法session對象:用于訪問HttpSession對象,例如,#相當于調用getAttribute("name")方法application對象:用于訪問ServletContext對象,例如,#相當于調用ServletContext的getAtrribute("name")方法attr對象:用于按照>request-->session-->application順序訪問其屬性-6-OGNL集合表達式ListMapin: 某個元素是否在指定的集合對象中notin: 某個元素是否不在指定的集合對象中?: 獲得所有符合邏輯的元素^: 獲得符合邏輯的第一個元素$: 獲得符合邏輯的最后一個元素{e1,e2,e3…}#{key1:value1,key2:value2,}-7-數(shù)據(jù)標簽數(shù)據(jù)標簽主要用來提供各種數(shù)據(jù)訪問功能標簽名描述action該標簽用來直接調用一個Action,根據(jù)executeResult參數(shù),可以將該Action的處理結果包含到頁面中bean該標簽用來創(chuàng)建一個JavaBean對象date該標簽用來格式化輸出一個日期屬性debug該標簽用來生成一個調試鏈接,當點擊該鏈接時,可以看到當前值棧中的內容i18n該標簽用來指定國際化資源文件的baseNameinclude該標簽用來包含其他的頁面資源param該標簽用來設置參數(shù)property該標簽用來輸出某個值,該值可以是值棧或ActionContext中的值push該標簽用來將某個值放入值棧set該標簽用來設置一個新的變量,并把新變量存儲到特定的范圍中text該標簽用來輸出國際化信息url該標簽用來生成一個特定的URL-8-property標簽property標簽的作用是輸出指定值輸出value屬性指定的值,如果沒有指定value屬性,則默認輸出ValueStack棧頂?shù)闹凳纠?.1regsuccess.jsp屬性名是否必須描述default否如果輸出的屬性值為null,則顯示default屬性指定的值escape否默認為true,即不解析HTML標簽,如果設定為false則默認解析HTML標簽value否指定需要輸出的屬性值,如果沒有指定該屬性,則默認輸出ValueStack棧頂?shù)闹礽d否指定該元素的標識-9-param標簽param標簽主要用于為其他標簽提供參數(shù)屬性名是否必須描述name否指定被設置參數(shù)的參數(shù)名value否指定被設置參數(shù)的參數(shù)值,該值為Object類型id否指定引用該元素的ID<s:paramname="user">zhangsan</s:param><s:paramname="user"value="zhangsan"/><s:paramname="user"value="zhangsan"/>-10-bean標簽bean標簽主要用于創(chuàng)建一個JavaBean的實例屬性名是否必須描述name是該屬性指定要實例化的JavaBean實現(xiàn)類id否如果指定了該屬性,則JavaBean實例就會放入OgnlContext對象中,從而允許直接通過該id屬性來訪問該JavaBean實例。如果不指定id屬性,JavaBean實例則被放置在值棧中<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標簽set標簽主要用于將某個值放入指定的范圍內<s:setname="p1"value="#p"/><s:setname="p2"value="#p"scope="application"/><s:setname="p3"value="#p"scope="session"/>屬性名是否必須描述name是設置變量的名稱scope否用來指定變量的有效范圍,該屬性值可以是application、session、request、page或action。如果沒有指定該屬性,則默認將該變量放置在OgnlContext中value否用來設置變量的值,如果沒有指定該屬性,則將ValueStack棧頂?shù)闹蒂x給該變量id否該屬性指定該元素的應用ID-12-include標簽include標簽主要用于將一個JSP頁面或一個Servlet包含到本頁面中
<%@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標簽</title></head><body>
<s:includevalue="file.jsp"/></body></html>屬性名是否必須描述value是該屬性指定需要被包含的JSP頁面或Servletid否該屬性指定該元素的應用ID-13-url標簽url標簽主要用于生成一個URL地址屬性名是否必須描述action否指定生成的URL地址為哪個Action,如果action沒有提供值,就使用value作為URL的地址值value否指定生成URL的地址值,如果value沒有提供值,就使用action屬性指定的Action作為URL地址includeParams否指定是否包含請求參數(shù),該屬性的值可為none、get或allscheme否設定scheme屬性namespace否指定命名空間,與action結合使用,而與value結合使用時沒有意義method否指定使用Action的方法encode否指定是否需要對請求參數(shù)進行編碼includeContext否指定是否需要將當前上下文包含在URL地址中anchor否指定URL的錨點id否指定該url元素的引用ID,使用該屬性時,生成的URL不會在頁面上輸出,但可以引用escapeAmp否指定是否將特殊符號“&”解析成實體“&”-14-控制標簽數(shù)據(jù)標簽主要用于完成流程控制,例如分支、循環(huán)等操作,也可以完成對集合的合并、排序等操作
標簽名描述if該標簽用于控制選擇輸出elseIf/elseif該標簽同if標簽結合使用,用來控制選擇輸出else該標簽同if標簽結合使用,用來控制選擇輸出append該標簽用于將多個集合拼接成一個集合generator該標簽是一個字符串解析器,用來將一個字符串解析成一個集合iterator該標簽是一個迭代器,用來迭代輸出集合中的數(shù)據(jù)merge該標簽用于將多個集合拼接成一個集合,在使用方式上與append有區(qū)別sort該標簽用于對集合進行排序subset該標簽用于截取集合的部分集合,形成新的子集合-15-if/elseif/else標簽if、elseif、else這3個標簽都用來進行分支控制。其中,if和elseif標簽利用test屬性的值來決定是否計算并輸出標簽體的內容
<!--判斷成績是否及格,不及格,良,優(yōu)--><s:setname="score"value="99"/><s:iftest="%{#score<60}">
成績?yōu)椋翰患案?lt;/s:if><s:elseiftest="%{#score>=60&score<80}">
成績?yōu)椋杭案?lt;/s:elseif><s:elseiftest="%{#score>=80&score<90}">
成績?yōu)椋毫?lt;/s:elseif><s:else>
成績?yōu)椋簝?yōu)</s:else>示例4.7if-elseif-else.jsp
-16-iterator標簽iterator標簽主要用于對集合進行迭代,其中集合類型可以是List、Set、Map或數(shù)組<tableborder=1width=200> <s:iteratorvalue="{'JavaSE程序設計教程', 'JavaEE輕量級框架-S2SH', 'JavaWeb程序設計'}"id="bookName"> <tr> <td><s:propertyvalue="bookName"/></td> </tr> </s:iterator></table>屬性名是否必須描述value否指定迭代集合,通常使用OGNL表達式指定。如果沒有指定value屬性,則使用ValueStack棧頂?shù)募?/p>
id否指定集合中元素的IDstatus否指定迭代時的IteratorStatus實例,用于獲取迭代狀態(tài)示例4.8iterator.jsp
-17-主題和模板模板是一個標簽的顯示風格
多個模板構成一個主題Struts2框架默認主題:通過下面幾種方式使用主題:通過設定特定UI標簽中的theme屬性來指定主題通過設定特定UI標簽外圍form標簽的theme屬性來指定主題通過取得page范圍內名稱為theme的屬性值來確定主題通過取得request范圍內名稱為theme的屬性值來確定主題通過取得session范圍內名稱為theme的屬性值來確定主題通過取得application范圍內名稱為theme的屬性值來確定主題通過取得名為struts.ui.theme的常量值來確定主題,該常量默認值為xhtml,可以在struts.xml或perties文件中配置-18-表單標簽數(shù)據(jù)標簽主要用于進行
數(shù)據(jù)的輸入和用戶交互等操作Struts2提供了很多表單標簽,
大部分表單標簽和
HTML表單元素之間一一對應
CheckboxlistComboboxFileFormHiddenselectoptiontransferselectradiooptgrouptokenTextareapasswordtextfiledsubmitreset-19-checkboxlist標簽checkboxlist標簽可以一次創(chuàng)建多個復選框<!--使用簡單集合對象生成多個復選框--><s:checkboxlistname="books"labelposition="top"label="選擇您喜歡的圖書" list="{'JavaSE程序設計教程','JavaEE輕量級框架-S2SH','JavaWeb程序設計'}"/><!--使用簡單Map對象生成多個復選框--><s:checkboxlistname="books1"labelposition="top"label="請選擇圖書的出版日期" list="#{'JavaSE程序設計教程':'2010年7月', 'JavaEE輕量級框架-S2SH':'2010年8月', 'JavaWeb程序設計':'2010年9月'}" listKey="key"listValue="value"/>示例4.9checkboxlist.jsp
屬性名是否必須描述list是指定集合屬性值。如果list屬性為一個Map類型(key-value對),在默認情況下,key賦值給標簽的value,value則對應標簽的LabellistKey否指定集合元素中的某個屬性作為復選框的value。如果集合為Map類型則可以使用key和value分別代表Map對象的key和value作為復選框的valuelistValue否指定集合元素中的某個屬性作為復選框的label。如果集合為Map類型則可以使用key和value分別代表Map對象的key和value作為復選框的Label-20-optiontransferselect標簽optiontransferselect標簽創(chuàng)建兩個選擇項以及轉移下拉列表項
<s:optiontransferselectlist="{'會計','出納','倉庫管理員'}" headerKey="headerKey"headerValue="請選擇"doubleHeaderValue="請選擇"doubleHeaderKey="doubleHeaderKey"name="leftRecords"leftTitle="未選角色" rightTitle="已選角色"doubleList="'總經理','董事長'"doubleName="rightRecords"/>示例4.10optiontransferselect.jsp
-21-optgroup標簽optgroup標簽生成一個下拉列表框的選項組<s:selectlabel="請選擇"name="select"list="{'開發(fā)工具','Web應用'}"><s:optgrouplabel="開發(fā)語言" list="#{'Java':'Java','C#':'C#','C++':'C++','Dephi':'Dephi'}"/><s:optgrouplabel="技術圖書"list="#{'JavaSE程序設計教程':'JavaSE程序設計教程','JavaEE輕量級框架-S2SH':'JavaEE輕量級框架-S2SH','JavaWeb程序設計':'JavaWeb程序設計'}"/></s:select>示例4.11optgroup.jsp
-22-非表單標簽非表單標簽用來生成頁面中不存在于表單中的可視化元素標簽名描述actionerror該標簽用來輸出Action中getActionErrors()方法返回的異常信息actionmessage該標簽用來輸出Action中getActionMessage()方法返回的信息component該標簽用來生成一個自定義組件div該標簽用來生成一個div片段fielderror該標簽用來輸出異常提示信息,如果Action實例存在表單域的類型轉換錯誤,校驗錯誤,該標簽負責輸出這些信息tabbedPanel該標簽用來生成HTML頁面中的Tab頁tree該標簽用來生成一個樹形結構treenode該標簽用來生成樹形結構的節(jié)點-23-
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 圖書館裝修合同書-@-1
- 辦公用品快遞寄件合同模板
- 農業(yè)科技園區(qū)肥料配送協(xié)議
- 書店裝修合同主要條款
- 洗浴中心舒適裝修合同模板
- 企業(yè)總部衛(wèi)生間裝修合同
- 博物館裝修設計合同模板
- 液態(tài)膠水槽罐車物流合同
- 體育館裝修及看臺座椅合同
- 專業(yè)健身房裝修協(xié)議
- 2025年中國山泉水市場前景預測及投資規(guī)劃研究報告
- GB/T 18109-2024凍魚
- 重慶市2025屆高三第一次聯(lián)合診斷檢測英語試卷(含解析含聽力原文無音頻)
- 《榜樣9》觀后感心得體會二
- 《西安交通大學》課件
- 天津市部分區(qū)2024-2025學年九年級(上)期末物理試卷(含答案)
- 小學二年級數(shù)學計算題共4165題
- 一氧化碳中毒培訓
- 初二上冊好的數(shù)學試卷
- 保潔服務質量與服務意識的培訓
- 突發(fā)公共衛(wèi)生事件衛(wèi)生應急
評論
0/150
提交評論