999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

Struts2中的OGNL應用案例

2012-04-13 04:58:04
科技傳播 2012年12期
關鍵詞:數據庫語言設計

劉 潔

武漢軟件工程職業學院,湖北 武漢 430033

1 Struts2中的OGNL語言

Struts是Apache軟件基金會(ASF)贊助的一個開源項目。它最初是Jakarta項目中的一個子項目,并在2004年3月成為ASF的頂級項目。它通過采用Java Servlet/JSP技術,實現基于JavaEE Web應用的MVC設計模式的應用框架,是MVC經典設計模式中的一個經典產品。

但隨著Struts設計上的缺陷,使它越來越無法滿足開發人員要求高效、靈活的開發需求,于是WebWork框架進入了Struts開發團隊的視線。

2006年,WebWork與Struts這兩個優秀的JavaEE Web框架的團體,決定合作共同開發一個新的框架,整合WebWork與Struts 優點,并且更加優雅、擴展性更強的框架,命名為“Struts 2”,原Struts的1.x 版本產品稱為“Struts 1”。

至此,Struts項目并行提供與維護兩個主要版本的框架產品——Struts 1 與 Struts 2。

在Struts2中,根據描述模型、視圖、控制器對應關系的struts.xml 的配置文件轉發視圖的請求,并由一個名為 Action的Java類對視圖請求進行處理,調用響應數據模型。

其中,Struts2的一個關鍵特性就是它可以對Action攜帶的數據進行讀寫訪問,這是通過表達式語言(Expression Language,EL)來實現的。EL通常是用來簡化數據的訪問操作,取代Java腳本代碼,提供更清晰的視圖層實現。對于Struts 2而言,它支持以下幾種表達式語言:

1)OGNL:可以方便地操作對象屬性的開源表達式語言;2)JSTL:JSP 2.0集成的標準的表達式語言;3)Groovy:基于Java平臺的動態語言;4)Velocity:嚴格來說不是表達式語言,它是一種基于Java的模板匹配引擎。

其中OGNL是Object-Graph Navigation Language的縮寫,既對象圖導航語言。Struts 2默認的表達式語言,它是一種功能強大的表達式語言,通過它簡單一致的表達式語法可以存取對象的任何屬性,調用對象的方法,遍歷整個對象的結構圖,實現字段類型轉化等功能。

2 基于OGNL語言的應用案例設計

這里以基于Java Web的選課系統中的“選課模塊”為例剖析OGNL語言,運行效果如圖1所示:

圖1 “選課模塊”運行效果

2.1 數據庫設計

首先完成的是數據庫設計,選擇合適的數據庫產品,根據面向對象分析設計出數據庫,數據庫中的表如下:

2.2 包圖設計

基于MVC模式及數據庫設計,構建出“選課模塊”的組件圖,如圖2所示:

圖2 “選課模塊”組件圖

2.3 順序圖設計

“選課模塊”中獲取數據庫中course表信息顯示在頁面上這個事件流如下圖3所示,其中SelectcourseAction通過調用CourseDAO對象的SelectCourse()方法獲取Course的List列表,并將其存入值棧中。

在Struts2中值棧就相當于一個“倉庫”,數據信息到來時裝入“倉庫”,需要時可以從“倉庫”中取出這些數據信息。

圖3 “選課模塊”順序圖

以此類推畫出address表、teacher表被讀入到頁面的順序圖及課表數據被存入到數據庫的順序圖。

2.4 關鍵技術及代碼

在SelectcourseAction.java中,利用Struts2的action特性,address、courses、teachers三個List對象被存儲在值棧中,代碼如下所示:

在 main.jsp中,利用OGNL語言將 address、courses、teachers三個List對象中的name屬性值的集合取出,并利用Struts2的UI標簽將其顯示在下拉列表中,下拉列表中的name屬性分別定義為curriculum.courseName、curriculum.courseAddress、curriculum.courseTeacher、curriculum.courseTime,代表Curriculum對象(curriculum)的四個屬性值。

在InsertcurriculumAction.java中利用Struts2的Domain Model方法將main.jsp傳遞過來的參數值保存在curriculum對象中,以便調用CurriculumDAO對象的courseInsert(curriculum)方法將其選課數據存入數據庫中。

在Struts 2框架中,任何Action所涉及到的數據都要被存入Action上下文,同時也會在值棧中創建一個這些數據信息的副本。因此有效利用OGNL語言從值棧“倉庫”中存取數據顯得尤為重要。

[1]孫衛琴.Tomcat與Java Web開發技術詳解.電子工業出版社,2005,8.

[2]孫鑫.Struts2深入詳解.電子工業出版社,2008,7.

[3]陳沉.研磨Struts2.清華大學出版社,2011,10.

猜你喜歡
數據庫語言設計
語言是刀
文苑(2020年4期)2020-05-30 12:35:30
瞞天過海——仿生設計萌到家
藝術啟蒙(2018年7期)2018-08-23 09:14:18
讓語言描寫搖曳多姿
設計秀
海峽姐妹(2017年7期)2017-07-31 19:08:17
有種設計叫而專
Coco薇(2017年5期)2017-06-05 08:53:16
數據庫
財經(2017年2期)2017-03-10 14:35:35
累積動態分析下的同聲傳譯語言壓縮
數據庫
財經(2016年15期)2016-06-03 07:38:02
數據庫
財經(2016年3期)2016-03-07 07:44:46
數據庫
財經(2016年6期)2016-02-24 07:41:51
主站蜘蛛池模板: 国产精品手机视频| 亚洲av日韩av制服丝袜| 国产xx在线观看| 久久综合丝袜长腿丝袜| 国产成人精品高清在线| 国产福利不卡视频| 99精品视频九九精品| 亚洲欧美成人网| 欧美日本在线播放| 99热国产这里只有精品9九| 日本午夜网站| 欧美激情视频一区| 色噜噜在线观看| 久久96热在精品国产高清| 欧美第九页| 2022国产91精品久久久久久| 亚洲手机在线| 亚洲人成人伊人成综合网无码| 国产午夜精品一区二区三区软件| 超碰色了色| 在线看国产精品| 久青草免费在线视频| 国内精品久久九九国产精品 | 一区二区午夜| 91探花在线观看国产最新| 一本二本三本不卡无码| 四虎亚洲精品| 日韩美一区二区| 中文字幕亚洲无线码一区女同| 成人午夜免费观看| 欧美一级在线| 亚洲男人在线天堂| 国产精品理论片| 国产在线观看第二页| 狠狠亚洲婷婷综合色香| 国产成人1024精品| 亚洲综合九九| 国产精品亚洲专区一区| 91精品亚洲| 欧美三级视频在线播放| 欧洲av毛片| 伦精品一区二区三区视频| 国产精品9| 日韩精品毛片| 久久国产高清视频| 亚洲品质国产精品无码| 91视频精品| 色综合久久无码网| 国产菊爆视频在线观看| 午夜电影在线观看国产1区| 好吊色妇女免费视频免费| 2021无码专区人妻系列日韩| 国产高清无码麻豆精品| 中文字幕在线播放不卡| 91小视频在线播放| 伊人婷婷色香五月综合缴缴情| 久久精品人人做人人爽电影蜜月| 3344在线观看无码| 亚洲成年网站在线观看| 国产精品亚洲欧美日韩久久| 天天色综网| 99久久精品国产自免费| 国产v精品成人免费视频71pao| AV色爱天堂网| 国产99精品视频| 91网站国产| 毛片视频网址| 国产精品99r8在线观看| 欧美笫一页| 成年人国产视频| 最新国语自产精品视频在| 一级毛片网| 亚洲日韩欧美在线观看| 中文无码精品a∨在线观看| aa级毛片毛片免费观看久| 国产女人在线视频| 狠狠色丁香婷婷| 亚洲国产成人精品无码区性色| 五月天丁香婷婷综合久久| 久久情精品国产品免费| 亚洲床戏一区| 2021国产精品自产拍在线|