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

基于Struts2模型驅動開發方法研究

2018-11-01 03:50:20王先國何忠禮王玉娟
發明與創新 2018年25期
關鍵詞:頁面模型

王先國 何忠禮 王玉娟

中山大學新華學院 廣東 東莞 523133

引言

目前,基于Struts2的模型驅動開發方法十分流行,但很多開發人員對其開發規范、工作原理、核心攔截器的組成和攔截機制知之甚少,這就導致開發效率低,且開發出的軟件質量差。基于此,本文詳細描述了Struts2的模型驅動工作原理,通過實例演示了基于Struts2的模型驅動的開發步驟,為開發人員提供一個模型驅動的開發示范。

一、Struts2工作原理2

1.Struts2體系結構

Struts2是一個標準的MVC框架,它簡化了Web程序的開發過程,并且降低了程序的耦合度。Struts2體系結構如圖1所示。

StrutsPrepareAndExcute-Filter(Struts2核心控制器):它是Struts2的調度中心,由它決定是否處理客戶的Action請求。

Interceptor(攔截器):攔截器是Stuts2的基石,它是一些無狀態的類,攔截器可以自動攔截客戶發送的Action請求。客戶的所有Action請求,在到達Action之前,首先要執行一序列攔截器,在圖1中,客戶的Action請求到達Action以前,先要執行攔截器1、攔截器2、攔截器3。

Action(控制器):在圖1中,客戶的請求經過攔截器1、攔截器2、攔截器3后,才到達Action控制器。Action是程序員編寫的控制器,用來處理客戶的Action請求。

Resul(結果)t:Action控制器執行完后,返回一個字符串,這個字符串就是邏輯視圖。Result根據邏輯視圖的值,去調用相應的物理視圖。Struts2中支持多種視圖類型,比如Java ServerPages(JSP)、FreeMarker等[1]。

圖1 Struts2的體系結構

2.Struts2執行流程

Struts2的模型驅動工作流程如圖2所示。

圖2 Struts2模型驅動工作流程圖

客戶端向Struts2控制器發送一個Action請求,比如,表單提交;Struts2控制器調用屬性攔截器(params),屬性攔截器獲取表單請求參數,并將表單參數封裝為Model(一個普通的Bean);當執行流程到達Action時,Struts2控制器調用模型攔截器(ModelDriven),模型攔截器獲取模型對象,并將模型對象壓入值棧的棧頂;Struts2控制器根據Action執行后返回的結果值(邏輯視圖),調用相應的JSP頁面;JSP頁面將結果返回(response)給客戶[2]。

二、模型驅動開發示范

1.定義模型

這里的模型就是一個普通的Bean(People對象),在模型中必須定義setter和getter方法。下面是People類的源代碼:

packagewang;

publicclassPeople{

Stringname;//本類中的屬性名必須與表單中的屬性name的值一致

intage; //本類中的屬性名必須與表單中的屬性name的值一致

publicStringgetName(){

returnname;

}

publicvoidsetName(Stringname){

this.name=name;

}

publicintgetAge(){

returnage;

}

publicvoidsetAge(intage){

this.age=age;

} }

2.定義Action

使用模型驅動時,繼承ActionSupport類或者實現接口Action時,必須實現模型驅動接口ModelDriven。在控制器中,必須重寫execute()方法 和 getModel()方法[3]。 下面是PeopleAction的源代碼。

packagewang.action;

importwang.People;

importcom.opensymphony.xwork2.ActionSupport;

import com.opensymphony.xwork2.ModelDriven;

publicclassPeopleActionextendsActionSupportimplementsModelDriven<People>{

Peoplepeople=newPeople ();// 必須初始化

publicStringexecute()throwsException{

returnSUCCESS; //此方法必須重寫

}

publicObjectgetModel(){//此方法必須重寫

returnpeople;

} }

3.建立請求Action的表單

建立一個向Action提交請求的表單頁面,下面是請求頁面(addPeople.jsp)的源代碼。

<%@taglibprefix="s"uri="/struts-tags"%>

<html>

<body>

<h1>基于Struts2模型驅動</h1>

<s∶formaction="peopleAction">

<s∶textfieldname="name"label="姓名"/>

<s∶textfield name="age"label="年齡 "value=""/>

<s∶submit/>

</s∶form>

</body>

</html>

4.建立響應頁面

建立一個向Action提交請求的表單頁面,下面是響應頁面(success.jsp)的源代碼。

<%@taglibprefix="s"uri="/struts-tags"%>

<html>

<body>

<h1>基于Struts2模型驅動</h1>

姓名∶<s∶propertyvalue="name"/><br>

年齡∶<s∶propertyvalue="age"/><br>

</body>

</html>

5.配置文件(struts.xml)

<?xmlversion="1.0"encoding="UTF-8"?>

<!DOCTYPEstrutsPUBLIC

"-//Apache Software Foundation//DTD StrutsConfiguration2.0//EN"

"http∶//struts.apache.org/dtds/struts-2.0.dtd">

<struts>

<constant name="struts.dev-Mode"value="true"/>

<package name="default"namespace="/"extends="struts-default">

<actionname="peopleAction"class="wang.action.PeopleAction">

<result name="success">/success.jsp</result>

</action>

</package>

</struts>

三、結語

本文詳細展示了基于Struts2的模型驅動的工作原理、程序執行流程、開發規范,用一個完整的實例,清晰地再現了程序開發的每個環節、步驟和規范,為程序開發人員提供了一個基于Struts2的模型驅動的樣板,降低了開發過程中出現的錯誤率,極大地提高了程序開發效率。

猜你喜歡
頁面模型
微信群聊總是找不到,打開這個開關就好了
大狗熊在睡覺
一半模型
刷新生活的頁面
保健醫苑(2022年1期)2022-08-30 08:39:14
重要模型『一線三等角』
重尾非線性自回歸模型自加權M-估計的漸近分布
3D打印中的模型分割與打包
FLUKA幾何模型到CAD幾何模型轉換方法初步研究
同一Word文檔 縱橫頁面并存
淺析ASP.NET頁面導航技術
主站蜘蛛池模板: 日韩av无码精品专区| 19国产精品麻豆免费观看| AV在线麻免费观看网站 | 亚洲精品国产乱码不卡| 欧美 亚洲 日韩 国产| 婷婷中文在线| 国产成人欧美| 91成人精品视频| 国产综合色在线视频播放线视| 欧美成人精品在线| 亚洲第一视频区| 91无码人妻精品一区| 91区国产福利在线观看午夜| 性色在线视频精品| 亚洲天堂伊人| 日日摸夜夜爽无码| 麻豆精品视频在线原创| 国产成人久久777777| 福利在线免费视频| 人妻精品久久无码区| 国产精品亚洲精品爽爽| 欧美精品1区2区| 欧美成一级| 在线观看免费人成视频色快速| 欧美成人一区午夜福利在线| 久久精品亚洲中文字幕乱码| 国产精品久久久久久久久久98| 青青草一区二区免费精品| 国产91丝袜在线播放动漫 | 亚洲嫩模喷白浆| 99er这里只有精品| 成人福利在线视频免费观看| 国产大全韩国亚洲一区二区三区| 丁香五月婷婷激情基地| 日韩在线永久免费播放| 国产一二三区视频| 欧美色视频在线| 老司国产精品视频91| 国产精品夜夜嗨视频免费视频| 国产一区二区视频在线| 玖玖精品视频在线观看| 国产成人一二三| 九九热视频精品在线| 亚洲国产av无码综合原创国产| 中文字幕亚洲电影| 国产精品永久久久久| 国产成人盗摄精品| 欧美一级视频免费| 国产拍揄自揄精品视频网站| 91精品国产自产在线老师啪l| 日韩精品久久无码中文字幕色欲| 国产极品美女在线观看| 国产高清精品在线91| 亚洲一区第一页| 免费观看男人免费桶女人视频| 亚洲天堂成人在线观看| 久久国产精品影院| 四虎永久免费网站| 四虎成人免费毛片| 成人福利在线视频免费观看| 丁香婷婷激情综合激情| 婷婷99视频精品全部在线观看| 91精品在线视频观看| 嫩草国产在线| 久久国产亚洲偷自| 欲色天天综合网| 朝桐光一区二区| 国产二级毛片| 免费 国产 无码久久久| 精品五夜婷香蕉国产线看观看| 国产三级精品三级在线观看| 亚洲日韩第九十九页| jijzzizz老师出水喷水喷出| 欧美午夜在线观看| 伊人无码视屏| 国产中文一区二区苍井空| 国产麻豆精品久久一二三| 欧美不卡视频在线| 亚洲男女在线| 国产成人精品第一区二区| 国产美女在线免费观看| 欧美日韩高清在线|