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
主站蜘蛛池模板: 综合网天天| 国产91熟女高潮一区二区| 夜夜操国产| 五月激情综合网| 亚洲欧美不卡| 久久美女精品| 久久久久免费精品国产| 中文字幕伦视频| 99青青青精品视频在线| 久热中文字幕在线观看| 日本一本在线视频| 久久这里只有精品66| 国产午夜在线观看视频| 久久黄色毛片| 国产91小视频在线观看| 精品国产女同疯狂摩擦2| 伊人狠狠丁香婷婷综合色| 激情网址在线观看| 国产精品成人一区二区不卡| 亚洲AV无码不卡无码| 国产成人高清在线精品| 91亚洲免费视频| 全部毛片免费看| 欧美精品亚洲二区| 萌白酱国产一区二区| 手机永久AV在线播放| 成人亚洲视频| 亚洲欧洲免费视频| 国产精品一老牛影视频| 99视频精品全国免费品| 欧美国产日产一区二区| 久久黄色影院| 在线观看国产精美视频| 国产综合精品日本亚洲777| 欧美国产菊爆免费观看| 国产一区二区三区精品久久呦| 91在线无码精品秘九色APP| 欧美一级视频免费| 免费观看国产小粉嫩喷水| 免费大黄网站在线观看| 一级毛片网| 动漫精品中文字幕无码| 成人在线观看不卡| 五月综合色婷婷| 漂亮人妻被中出中文字幕久久| 制服丝袜国产精品| 欧美亚洲国产精品第一页| 日韩天堂视频| 国产91麻豆视频| 国产精品内射视频| 亚洲有无码中文网| 欧美激情综合| 区国产精品搜索视频| 在线毛片网站| 狼友av永久网站免费观看| 免费无码网站| 五月激情婷婷综合| 成年看免费观看视频拍拍| 亚洲精品亚洲人成在线| 热re99久久精品国99热| 亚洲成人福利网站| 国产成人乱无码视频| 久久综合丝袜长腿丝袜| 99久久人妻精品免费二区| 亚洲av无码牛牛影视在线二区| 老司机午夜精品网站在线观看 | 青青青视频免费一区二区| 国产SUV精品一区二区| 色爽网免费视频| 97国产在线观看| 人禽伦免费交视频网页播放| 在线观看国产小视频| 在线无码九区| 亚洲最大福利网站| 国产成人精品一区二区秒拍1o| 亚洲三级电影在线播放| 色综合狠狠操| 在线免费亚洲无码视频| 无码网站免费观看| 国产无码性爱一区二区三区| 91在线免费公开视频| 99在线国产|