




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、第8章 struts 1.3框架 本章主要內(nèi)容 jsp的model1和model2開發(fā)模式 mvc設(shè)計模式的基本思想 struts1.3框架的安裝與部署 struts表單技術(shù) 單一操作控制邏輯與多重操作控制邏輯 8.1 jsp開發(fā)模式 8.1.1 model 1開發(fā)模式開發(fā)模式 model1開發(fā)模式簡單,開發(fā)速度快,容易實現(xiàn),比較適合于小型網(wǎng)站的構(gòu)建。但由于jsp頁面中包含有大量的java代碼,頁面可讀性差,代碼可重用性和可維護性相對差。 8.1.2 mvc設(shè)計模式與model 2開發(fā)模式 1、mvc設(shè)計模式的基本思想設(shè)計模式的基本思想model2開發(fā)模式也叫mvc模式 圖8-1 jsp的mv
2、c開發(fā)模式 圖8-2中的mvc三層的作用如下:(1)控制器層:控制器用servlet程序?qū)崿F(xiàn)。當用戶請求到達mvc模塊時,控制器接收請求,并組織工作流程,決定調(diào)用哪些模型組件來處理請求,完成既定的功能??刂破魍瓿扇蝿?wù)后,調(diào)用合適的視圖來顯示模型返回的數(shù)據(jù)。(2)模型:模型表示企業(yè)數(shù)據(jù)和業(yè)務(wù)規(guī)則。在mvc的三個部件中,模型擁有最多的處理任務(wù)。模型組件一般由javabean充當,根據(jù)系統(tǒng)需要可以擴展為ejb組件。模型與數(shù)據(jù)格式無關(guān),并可序列化,這使得模型能為多個視圖提供數(shù)據(jù)并能夠在層間傳遞。模型、控制器和視圖重用,能夠減少代碼的重復(fù)性。(3)視圖:視圖是用戶看到并與之交互的界面,它可以由html、
3、jsp、jstl、el表達式、xml等構(gòu)成。 【例8-1】對pubs數(shù)據(jù)庫的titles表按書名進行單關(guān)鍵字模糊查詢,結(jié)果顯示書名、類型和單價。用mvc設(shè)計模式實現(xiàn)。操作步驟如下:(1)設(shè)計一個輸入查詢關(guān)鍵字的表單頁面。在設(shè)計視圖中,添加表單:插入表單。添加一個名字為“key”的文本域。插入一個提交按鈕。表單提交給名為“/controller”的控制器處理。 (2)寫一個javabean封裝查詢到的記錄,只要求對書名title、類型type和單價price進行封裝。 (3) 編譯bookvo程序 (4)寫一個javabean,根據(jù)傳入的單關(guān)鍵字對數(shù)據(jù)庫進行模糊查詢,把查詢結(jié)果中的書名title
4、、類型type和單價price封裝在bookvo對象中,最后存儲在list集合中。 (5) 編譯bookquery程序(6)寫一個servlet程序,實現(xiàn)控制器,讀取表單中的關(guān)鍵字,調(diào)用javabean實現(xiàn)數(shù)據(jù)庫查詢,將結(jié)果傳遞給jsp頁面顯示。 (7) 編譯controller程序。 (8)在web.xml中部署servlet程序。 (9)編寫一個jsp頁面顯示查詢結(jié)果。 (10)編寫一個jsp頁面,顯示查詢出錯信息。 在開發(fā)的過程中,只要定義好相應(yīng)的接口規(guī)則,開發(fā)人員即可專注于自己模塊的開發(fā),提高了系統(tǒng)的開發(fā)效率。2、mvc設(shè)計的優(yōu)點web層與其它層分離,提高了軟件的健壯性、可擴展性和可維
5、護性。業(yè)務(wù)邏輯層與其它層的分離,最大程度地提高了代碼的重用性。8.2 struts 1.3框架 8.2.1 struts 1.3.8的安裝和配置 1、安裝安裝api支持包支持包在中下載struts1.3.8的軟件包,解壓后找到常用的api包,將它們復(fù)制到c:tomcatwebappsrootweb-inflib文件夾下2、在在web應(yīng)用中部署應(yīng)用中部署struts 8.2.2 struts-config.xml部署文件 struts-config.xml是strtus重要的部署文件。用戶在完成struts程序的編譯和jsp頁面設(shè)計后,需要在此部署文
6、件中編寫部署信息,將程序和jsp頁面部署到struts框架中,供struts框架集中管理和調(diào)用。打開安裝時復(fù)制到c:tomcatwebappsrootweb-infstruts-config.xml部署文件 8.3 struts的表單技術(shù) 8.3.1 struts的表單標記 struts表單標記的特點是:能夠配合struts框架的表單校驗功能使用,當表單校驗失敗時,struts框架會跳轉(zhuǎn)至表單頁面顯示出錯信息,表單提交前的數(shù)據(jù)仍然保持在表單中,方便用戶修改表單數(shù)據(jù)。struts能夠把表單中的信息自動填寫入表單類實例中。要在jsp頁面中引用struts表單標記 所用的標記庫聲明為: 1、標記標記
7、 它類似于html的標記,用于定義一個表單。中常用的屬性主要有: (1)action屬性 (2)method屬性 (3)name屬性 (4)scope屬性 2、標記標記 定義一個單行文本域。property屬性定義文本域的名字 例如: 3、標記標記 定義一個取消按鈕,按鈕上的提示文字寫在標記體內(nèi)。例如:取消 4、標記標記定義一個復(fù)位按鈕,按鈕的提示文字寫在標記體內(nèi)。例如:重置 5、標記標記 定義一個提交按鈕,提交按鈕的提示文字寫在標記體內(nèi)。例如: 提交 6、標記標記 定義一個復(fù)選框。property屬性定義復(fù)選框的名字,value屬性定義復(fù)選框的值。例如要定義兩個“愛好”復(fù)選框,代碼如下: 7
8、、標記標記 定義一個單選按鈕。property屬性定義單選按鈕的名字,value屬性定義單選按鈕的值。例如要定義兩個“性別”單選按鈕,代碼如下: 8、和和標記標記 標記用于定義下拉列表,標記用于定義下拉列表,property屬性定義屬性定義下拉列表的名字。下拉列表的名字。標記給下拉列表定義一個選項,其中標記給下拉列表定義一個選項,其中value屬性是選項的值,標記體是選項的提示文字。例如,屬性是選項的值,標記體是選項的提示文字。例如,要定義一個有三個選項的要定義一個有三個選項的“角色角色”下拉列表,代碼為:下拉列表,代碼為: 管理員管理員 普通用戶普通用戶 部門經(jīng)理部門經(jīng)理 9、標記標記 表單
9、校驗出錯后,出錯信息用一個actionmessage對象封裝,用指定的名字存儲在actionerrors對象中,標記能夠從actionerrors對象中檢索出指定名字的一條actionmessage消息并顯示在標記處。 例如: 8.3.2 actionform表單類和表單校驗表單類和表單校驗 org.apache.struts.action.actionform類是一個表單類,它被stuts框架實例化后用來存儲表單元素值。用戶要為某個表單編寫表單類時,可繼承actionform類得到一個表單類,在表單類中定義一個變量來存儲一個表單元素的值,并為變量定義相應(yīng)的set/getxxx()方法,這步工
10、作類似于為表單寫一個vo類。在表單類中如果要對表單元素值進行檢驗,只需要對actionform父類中的validate()方法進行重置,在validate()中對各表單元素用java代碼段進行檢驗。 validate()校驗方法的聲明為: public actionerrors validate(actionmapping mapping, javax.servlet.http.httpservletrequest request) 8.3.3 dynaactionform表單類和validator校驗框架 dynaactionform表單類的部署表單類的部署 使用dynaactionform
11、表單類時,一般不需要手工編寫表單類,只需要在struts-cofig.xml中作出配置 一個樣例如下示: 2、dynaactionform表單的校驗表單的校驗 (1)一種方法是自定義一個dynaactionform表單類,繼承dynaactionform,在自定義的dynaactionform表單類中對validate()方法進行重置,在validate()中實現(xiàn)對表單元素的校驗。 (2)另一種方法是利用validator校驗框架對dynaactionform表單進行校驗,校驗框架是apache項目中獨立于struts的另一個框架。 3、validator-rules.xml中的標準校驗規(guī)則中
12、的標準校驗規(guī)則 例如對日期、時間、數(shù)字等的校驗規(guī)則,其中常用的校驗規(guī)則如下: (1)required規(guī)則:表單元素的取值不允許為空。 (2)minlength規(guī)則:表單元素中字符個數(shù)不少于n個。使用此規(guī)則時要定義一個名為minlength的變量,并定義變量的具體取值。 4、validation.xml validation.xml的根元素是。在元素中可以定義一些全局的符號常量。符號變量的定義用元素實現(xiàn)。 8.3.4 基于map-backed的actionform表單類 actionform和dynaactionform的共同點是:所處理的表單元素的名字是已知的,表單元素的總個數(shù)是確定的。 基于
13、map-backed的actionform表單類比較適于處理動態(tài)表單問題,它實際上是一個actionform,但在actionform內(nèi)部用一個hashmap集合對象存儲動態(tài)表單元素,表單元素的名字當作它在hashmap中的鍵(key),表單元素值當作它在hashmap中的鍵值(value)。 8.4 struts的控制器層 控制器層由若干個組件共同構(gòu)成,這些組件間是松耦合的關(guān)系,其中最關(guān)鍵的是org.apache.struts.action包中的actionservlet類、requestprocessor類、action/dispatchaction類以及actionmapping類等。
14、8.4.1 action類與單一操作控制邏輯 action中最核心的方法是execute()方法,它的聲明如下: public actionforward execute(actionmapping mapping, actionform form,javax.servlet.http.httpservletrequest request, javax.servlet.http.httpservletresponse response) throws java.lang.exception【例8-2】用struts寫一個登錄應(yīng)用,在一個login.jsp頁面中輸入用戶名和口令,提交表單后,如果
15、用戶名和口令不為空,則轉(zhuǎn)至suc.jsp顯示用戶和口令,否則返回login.jsp提示用戶名和口令有錯。操作步驟如下: (1)建立表單頁。在代碼視圖中,找到標記,輸入如下示的代碼: (2)為表單編寫表單類。名為“l(fā)oginform”類,輸入如下的代碼: (3)編譯loginform程序。(4)為表單類編寫部署信息。 (5)為表單類編寫消息資源文件。 (6)在struts-cofig.xml中把perties定義為默認的資源文件。 (7)編寫控制邏輯類。名為“l(fā)oginaction”的類,輸入如下的代碼: (8) 編譯loginaction程序。 (9)部署loginaction程序。輸入以下的部署信息: (10)編寫結(jié)果顯示頁。 (11)預(yù)覽。啟動tomcat,打開一個ie窗口,輸入訪問url: :8080/login.jsp 完成以下測試: 用戶名和口令均留空,單擊【提交】按鈕,網(wǎng)頁上顯示出錯提示信息。 用戶名或口令之一留空,單擊【提交】按鈕,網(wǎng)頁上顯示出錯提示信息。 填寫用戶名或口令,單擊【提交】按鈕,網(wǎng)頁上顯示出所輸入的用戶名和口令。 8.4.2 多重操作控制邏輯 action類只有一個execute()方法,只適合于實現(xiàn)一種
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025屆山西省部分學(xué)校高三下學(xué)期4月模擬考試(省二模)政治試題(含答案)
- 河北旅游職業(yè)學(xué)院《數(shù)字游戲創(chuàng)作》2023-2024學(xué)年第二學(xué)期期末試卷
- 江西省南昌市教研室2025屆高三下學(xué)期開學(xué)考物理試題含解析
- 河北省滁州市衡水中學(xué)2024-2025學(xué)年高三第三次質(zhì)量預(yù)測化學(xué)試題試卷含解析
- 鄭州輕工業(yè)大學(xué)《體育健美操》2023-2024學(xué)年第二學(xué)期期末試卷
- 上海市閔行區(qū)文萊中學(xué)2024-2025學(xué)年初三中考模擬沖刺卷(提優(yōu)卷)(三)英語試題文試題含答案
- 江西省宜春市樟樹市2024-2025學(xué)年小升初數(shù)學(xué)高頻考點模擬卷含解析
- 河南臨潁新時代實驗校2025屆初三最后一卷語文試題含解析
- 湖南省株洲市第十八中學(xué)2024-2025學(xué)年高三下學(xué)期期末考試英語試題理試題(A卷)含解析
- 上海市松江區(qū)松江二中2024-2025學(xué)年高三下學(xué)期學(xué)前考試數(shù)學(xué)試題文試題含解析
- 眼科病人的心理護理支持與疏導(dǎo)學(xué)習
- 相鄰權(quán)糾紛知識講座
- 《天然氣取樣導(dǎo)則》課件
- 《公路建設(shè)項目竣工環(huán)境保護驗收指南》
- 職業(yè)暴露與安全防護ppt
- 抗腫瘤藥物處方審核要點
- 工業(yè)用烤箱安全操作規(guī)程范本
- 文件資料交接清單
- 人體解剖學(xué)與組織胚胎學(xué)課件
- 波導(dǎo)圓極化器結(jié)構(gòu)形式的選擇
- 交流電的三要素
評論
0/150
提交評論