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
主站蜘蛛池模板: 亚洲大学生视频在线播放| 日韩欧美高清视频| 99视频精品在线观看| 91无码网站| 天天做天天爱夜夜爽毛片毛片| 丰满的熟女一区二区三区l| 欧美精品影院| 一级毛片不卡片免费观看| 亚洲热线99精品视频| 国产免费黄| 日韩天堂视频| 无码国内精品人妻少妇蜜桃视频| 香蕉久久国产超碰青草| 伊人久久大线影院首页| 极品国产在线| 国产精品专区第1页| 亚洲网综合| 国产永久在线视频| 久久一本精品久久久ー99| 欧美特黄一级大黄录像| 国产一级毛片在线| 久久精品国产亚洲麻豆| 九九香蕉视频| 国产一二三区在线| 欧美午夜在线播放| 中文字幕欧美日韩| 青青国产视频| 国产一区二区丝袜高跟鞋| 国产女人18水真多毛片18精品| 伊人久久大香线蕉aⅴ色| 天天躁日日躁狠狠躁中文字幕| 国产人成在线观看| 久草视频一区| 国产欧美视频综合二区| 久久久久亚洲av成人网人人软件| 色网站在线免费观看| 亚洲欧洲日韩久久狠狠爱| 中文字幕人妻av一区二区| 国产成人精品一区二区| 国产91在线|日本| 色婷婷天天综合在线| 国产女同自拍视频| 国产一区二区网站| 中文字幕乱码中文乱码51精品| 国产精品美女自慰喷水| 日韩成人免费网站| 青青草原国产一区二区| 无码内射在线| 久久国产精品麻豆系列| 久久精品aⅴ无码中文字幕| 亚洲无限乱码| 狠狠v日韩v欧美v| 亚洲精品福利视频| 日韩123欧美字幕| 狠狠躁天天躁夜夜躁婷婷| AV在线麻免费观看网站| 久久久久亚洲Av片无码观看| 97超爽成人免费视频在线播放| 在线视频亚洲欧美| 99无码中文字幕视频| 亚洲美女视频一区| 在线国产91| 毛片手机在线看| 99视频精品在线观看| 韩国v欧美v亚洲v日本v| 亚洲福利一区二区三区| 国产一区二区免费播放| 国产高清免费午夜在线视频| 蝴蝶伊人久久中文娱乐网| 久久99热66这里只有精品一| 喷潮白浆直流在线播放| 污网站免费在线观看| 亚洲VA中文字幕| 国产白浆在线| 中国一级毛片免费观看| 亚洲黄色成人| 99视频精品全国免费品| 久久国产乱子| 91久久国产热精品免费| 欧美亚洲日韩中文| 久久人妻xunleige无码| 女人18一级毛片免费观看|