版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
JavaEE輕量級框架Struts2+spring+Hibernate整合開發(fā)
第2章Struts2與MVC模式內(nèi)容2.1Struts2與MVC模式2.2Struts2基本工作原理2.3Struts2的工作環(huán)境
2.4Action的創(chuàng)建和配置2.1Struts2與MVC模式MVC(ModalViewControler)
MVC將應(yīng)用中各組件按功能進(jìn)行分類,不同的組件使用不同技術(shù),相同的組件被嚴(yán)格限制在其所在層內(nèi),各層之間以松耦合的的方式組織在一起,從而提供良好的封裝。JavaWeb應(yīng)用的結(jié)構(gòu)經(jīng)歷了Model1和
Model2兩個(gè)時(shí)代。Model1模式的實(shí)現(xiàn)比較簡單,適用于快速開發(fā)小規(guī)模項(xiàng)目。但從工程化的角度看,它的局限性非常明顯,JSP頁面身兼View和Controller兩種角色,將控制邏輯和表現(xiàn)邏輯混雜在一起,從而導(dǎo)致代碼的重用性非常低,增加了應(yīng)用的擴(kuò)展性和維護(hù)的難度。Model1的程流程2.1Struts2與MVC模式Model2已經(jīng)是基于MVC架構(gòu)的設(shè)計(jì)模式。在Model2架構(gòu)中,Servlet作為前端控制器,負(fù)責(zé)接收客戶端發(fā)送的請求,在Servlet中只包含控制邏輯和簡單的前端處理;然后,調(diào)用后端JavaBean來完成實(shí)際的邏輯處理;最后,轉(zhuǎn)發(fā)到相應(yīng)的JSP頁面處理顯示邏輯。其具體的實(shí)現(xiàn)方式如圖所示。
2.1Struts2與MVC模式MVC優(yōu)點(diǎn):(1)多個(gè)視圖可以對應(yīng)一個(gè)模型。按MVC設(shè)計(jì)模式,一個(gè)模型對應(yīng)多個(gè)視圖,可以減少代碼的復(fù)制及代碼的維護(hù)量,一旦模型發(fā)生改變,也易于維護(hù)。(2)模型返回的數(shù)據(jù)與顯示邏輯分離。模型數(shù)據(jù)可以應(yīng)用任何的顯示技術(shù),例如,使用JSP頁面、Velocity模板或者直接產(chǎn)生Excel文檔等。(3)應(yīng)用被分隔為三層,降低了各層之間的耦合,提供了應(yīng)用的可擴(kuò)展性。(4)控制層的概念也很有效,由于它把不同的模型和不同的視圖組合在一起,完成不同的請求。因此,控制層可以說是包含了用戶請求權(quán)限的概念。(5)MVC更符合軟件工程化管理的精神。不同的層各司其職,每一層的組件具有相同的特征,有利于通過工程化和工具化產(chǎn)生管理程序代碼。
2.1Struts2與MVC模式Struts2框架結(jié)構(gòu):Struts2框架按照模塊來劃分,可以分為ServletFilters、Struts核心模塊、攔截器和用戶實(shí)現(xiàn)部分。Struts2框架結(jié)構(gòu)圖如圖所示。
2.2Struts2基本工作原理Struts2框架中各部分的功能處理如下:FilterDispatcher是控制器的核心,是MVC的Struts2實(shí)現(xiàn)中控制層(Controller)的核心。用戶從客戶端提交HttpServletRequest請求,請求經(jīng)過ActionContextCleanUp,再通過其他過濾器OthterFilters、SiteMesh等到達(dá)FilterDispatcherActionProxy通過ConfigurationManager(struts.xml)詢問框架的配置文件,找到需要調(diào)用的Action類。ActionProxy創(chuàng)建一個(gè)ActionInvocation實(shí)例,同時(shí)ActionInvocation通過代理模式調(diào)用Action。但在調(diào)用之前,ActionInvocation會根據(jù)配置加載Action相關(guān)的所有Interceptor(攔截器)。
2.2Struts2基本工作原理Struts2的控制流程:2.2Struts2基本工作原理Struts2的核心控制器FilterdispatcherAction類攔截器1攔截器2攔截器3Struts2的控制流程:客戶端發(fā)送請求,如/regist.action;核心控制器FilterDispatcher根據(jù)請求決定調(diào)用合適的Action;WebWork的攔截器鏈自動(dòng)請求應(yīng)用通用功能,如驗(yàn)證、工作流或文件上傳等功能。回調(diào)Action的exceute方法,該方法先獲得用戶請求參數(shù),然后執(zhí)行某種業(yè)務(wù)操作,既可以是將數(shù)據(jù)保存到數(shù)據(jù)庫中,也可以從數(shù)據(jù)庫中檢索信息。實(shí)際上,因?yàn)锳ction只是一個(gè)控制器,它會調(diào)用業(yè)務(wù)邏輯組件(Model)來處理用戶的請求。2.2Struts2基本工作原理Struts2的控制流程:Action的exceute方法處理結(jié)果信息將被輸出到瀏覽器中,可以是HTML頁面、圖像,也可以是PDF文檔或者其他文檔。Struts2支持的視圖技術(shù)非常多,既支持JSP,也支持Velocity、FreeMarker等模板技術(shù)。2.2Struts2基本工作原理搭建Struts開發(fā)環(huán)境安裝MyEclipse6.5安裝配置tomcat6.0下載Struts-2.2.3到本地,解壓第一個(gè)Struts2程序啟動(dòng)MyEclipse,新建一個(gè)Web項(xiàng)目Struts_HelloWorld,如圖所示:配置Struts_Helloworld項(xiàng)目Web服務(wù)器Tomcat6.0將Struts2的相關(guān)JAR粘貼到Web項(xiàng)目的lib目錄中,進(jìn)入Struts2的lib目錄,選擇將要粘貼的JAR文件后選擇“復(fù)制”命令2.3Struts2的工作環(huán)境對默認(rèn)的web.xml文件進(jìn)行修改,修改后的內(nèi)容如下:<filter><filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class></filter><filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern></filter-mapping>2.3Struts2的工作環(huán)境配置struts.xml文件,在配置這個(gè)文件時(shí)有可能出現(xiàn)找不到struts-2.0.dtd這個(gè)文件的信息,對此有一個(gè)最簡單的解決辦法就是在struts的JAR包中找到struts-2.0.dtd這個(gè)文件,并將它拷貝到D盤下,然后修改dtd文檔的路徑為:d://struts-2.0.dtd”。新建Action業(yè)務(wù)控制器HelloWorld,代碼如下:2.3Struts2的工作環(huán)境
packagechap2;publicclassHelloWorld{ privateStringmessage; publicStringgetMessage(){returnmessage;} publicvoidsetMessage(Stringmessage){ this.message=message; } publicStringexecute(){ if(message.equals("")){ return"error"; }else{ return"success"; } }}2.3Struts2的工作環(huán)境新建視圖頁面helloWorld.jsp<body><formid="form1"name="form1"method="post"action="HelloWorld.action"><p>輸入信息:<inputtype="text"name="message"id="username"/></p><p><inputtype="submit"name="submit"value="提交"/></p></form></body>新建成功頁面:success.jsp新建錯(cuò)誤頁面error.jsp運(yùn)行HelloWorld2.3Struts2的工作環(huán)境項(xiàng)目小結(jié)1、Web.xml中需要加入Struts2的加載配置。詳見web.xml中配置。2、在struts.xml中定義Action,其中包含Action返回視圖的定義。3、Struts2的Action是一個(gè)簡單的Java類,沒有特別之處。4、Action的execute()方法返回一個(gè)String。2.3Struts2的工作環(huán)境Struts2配置Struts2的主要組件Struts2中包含的主要組件如下表2-1所示:2.3Struts2的工作環(huán)境組件作用FilterDispatcher起中央控制器作用的過濾器Action處于Model層的Action,調(diào)用JavaBean實(shí)現(xiàn)業(yè)務(wù)邏輯struts.xml核心配置文件,配置有Action、Result等result和forward類似,轉(zhuǎn)發(fā)的目的地,支持多種視圖技術(shù)。
配置文件
Struts2框架的配置文件是聯(lián)系核心控制器FilterDispatcher、業(yè)務(wù)控制器Action、視圖組件等資源的橋梁,是應(yīng)用程序整個(gè)運(yùn)行流程的調(diào)度員。Struts2框架的配置文件如表2-2所示。表2-2Struts2的主要配置文件2.3Struts2的工作環(huán)境文件名文件路徑作用是否必須web.xml/WEB-INF/描述Web部署,包括所有必需的框架組件。由開發(fā)人員編寫。是struts.xml/WEB-INF/classes(一般直接在src中定義)核心配置文件,包括result映射、action映射、攔截器配置等。由開發(fā)人員編寫。否struts-default.xml/WEB-INF/lib/struts2-core.jarStruts2提供的默認(rèn)配置。由框架提供。否struts-plugin.xml/WEB-INF/lib/struts2-xxx-plugin.jarStruts2框架的插件所用的配置。由插件提供。
web.xml配置
web.xml是Web應(yīng)用項(xiàng)目必須的核心配置文件,用來對整個(gè)項(xiàng)目進(jìn)行部署配置。對于Struts2框架而言,需要加載控制器-FilterDispatcher,只需要在web.xml文件中配置FilterDispatcher即可。
2.3Struts2的工作環(huán)境
web.xml配置片段
<filter><!--
配置Struts
2核心Filter的名字
-->
<filter-name>struts2</filter-name><!--
配置Struts
2核心Filter的實(shí)現(xiàn)類
--><filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class></filter><!--
配置Filter的映射
--><filter-mapping><!--指定Filter的名稱
--><filter-name>struts2</filter-name><!--指定對應(yīng)Filter的訪問路徑
--><url-pattern>/*</url-pattern></filter-mapping>
2.3Struts2的工作環(huán)境
struts.xml配置struts.xml文件是Struts應(yīng)用中的一個(gè)非常重要的核心配置文件,主要負(fù)責(zé)管理業(yè)務(wù)控制器Action,是程序運(yùn)行流程的依據(jù)。Struts2框架根據(jù)struts/xml
配置文件控制什么時(shí)候處理哪個(gè)程序,如何進(jìn)行處理等。在進(jìn)行Web開發(fā)時(shí),一般放置路徑是:“/工程/src/
”中,系統(tǒng)部署時(shí)Struts2框架會自動(dòng)把它加載在WEB-INF/classes路徑下。struts.xml文件包含的配置元素及其功能如表2-3。
2.3Struts2的工作環(huán)境
struts.xml配置
2.3Struts2的工作環(huán)境配置元素名功能說明include引入其他xml配置文件constant配置常量信息bean由容器創(chuàng)建并注入的組件package包含一系列Action及攔截器配置信息,并對其進(jìn)行統(tǒng)一管理default-action-ref配置默認(rèn)Actiondefault-class-ref配置默認(rèn)classdefault-interceptor-ref配置默認(rèn)攔截器,對包范圍內(nèi)所有Action有效global-results配置全局結(jié)果集,對包范圍內(nèi)所有Action有效gobal-exception-mappings配置全局異常映射,對包范圍內(nèi)所有Action有效result-types配置自定義返回結(jié)果類型interceptors包含一系列攔截器配置信息action包含與Action操作相關(guān)的一系列配置信息exception-mapping配置異常映射,Action范圍內(nèi)有效interceptor-ref配置Action應(yīng)用的攔截器result配置Action的結(jié)果映射(1)package元素Struts2通過包來管理
Action、攔截器等核心組件。包就是Struts2中多個(gè)Action、多個(gè)攔截器、多個(gè)攔截器引用組成的集合。package配置主要配置以下屬性:name:包名,作為其他包引用本包的標(biāo)識符,該屬性是必須的。extends:用于繼承其他包,該屬性是可選的。通過繼承將會繼承到父包中的所有的配置,但是父包必須要在子包之前定義。通常應(yīng)用程序會繼承一個(gè)名為“struts-default”的內(nèi)置包,它配置了Struts2所有的內(nèi)置結(jié)果類型。namespace:用于設(shè)置命名空間,該屬性是可選的。在Struts2框架中使用命名空間實(shí)際上是在包的基礎(chǔ)上對Action進(jìn)一步的劃分和組織,更便于對Action的管理,對于大型項(xiàng)目命名空間的使用更加有效。abstract:設(shè)置為抽象包,該屬性是可選的。
2.3Struts2的工作環(huán)境(2)action元素action元素是用來定義一個(gè)action,action只是一個(gè)邏輯控制器,它并不直接對請求者生成任何響應(yīng),它是通過result子元素將指定的視圖呈現(xiàn)給客戶端。action有以下幾個(gè)重要的屬性:name:action名稱,用戶可以通過這個(gè)name的值發(fā)送請求,然后交給對應(yīng)的class類來處理。class:具體處理請求的類,是一個(gè)action類。method:指定調(diào)用action中的方法名,如果不指定method屬性,則默認(rèn)提交給exceute()方法處理請求。converter:指定使用的action類型轉(zhuǎn)換器。
2.3Struts2的工作環(huán)境(3)result元素result元素的作用是根據(jù)action類返回的字符串轉(zhuǎn)發(fā)給對應(yīng)的視圖,實(shí)際上是實(shí)現(xiàn)了邏輯視圖和物理視圖資源的映射。result有兩種配置方式,一種是作為<global-results…/>元素的子元素用來配置全局結(jié)果,還有一種是作為<action…/>元素的子元素用來配置局部結(jié)果,后一種是較常用的配置。Result主要有以下兩個(gè)屬性:name:該屬性指定所配置的邏輯視圖名,也就是action類中返回的字符串。type:該屬性指定結(jié)果類型。Type屬性的值有多個(gè),如dispatcher(jsp結(jié)果類型,也是默認(rèn)的結(jié)果類型)、chain(鏈?zhǔn)浇Y(jié)果類型)、freemarker(freemarker結(jié)果類型)、redirect-action(用于跳轉(zhuǎn)到其他Action的結(jié)果類型)等。如果不指定此屬性默認(rèn)為dispatcher結(jié)果類型。
2.3Struts2的工作環(huán)境(4)constant元素通過對constant元素的配置,可以改變Struts2框架的一些默認(rèn)行為,這些配置可以在struts.xml文件中完成,也可以在perties文件中完成。此元主要有以下兩個(gè)屬性:name:用于指定要配置的框架功能,如name="struts.i18n.encoding"表示配置web默認(rèn)的字符編碼,name="struts.custom.i18n.resources"表示指定Struts2應(yīng)用所需要的國際化資源文件等。value:是與name屬性配合使用,如<constantname="struts.i18n.encoding"value="UTF-8"/>表示配置web默認(rèn)的字符編碼是UTF-8,<constantname="struts.custom.i18n.resources"value="application"/>表示國際化資源文件的名字是“application”等。
2.3Struts2的工作環(huán)境利用<contant>元素可以解決中文亂碼的問題。中文亂碼問題一般是指當(dāng)請求參數(shù)有中文時(shí),無法在Action中得到正確的中文。Struts2中有2種辦法可以解決這個(gè)問題:設(shè)置JSP頁面的pageEncoding=”utf-8”,就不會出現(xiàn)中文亂碼;如果JSP頁面的pageEncoding=”GBK”,那么需要修改struts.i18n.encoding=GBK,在struts.xml中加入如下語句進(jìn)行修改。<?xmlversion="1.0"encoding="UTF-8"?><!DOCTYPEstrutsPUBLIC"-//ApacheSoftwareFoundation//DTDStrutsConfiguration2.0//EN""/dtds/struts-2.0.dtd"><struts><constantname="struts.i18n.encoding"value="GBK"/>……</struts>
2.3Struts2的工作環(huán)境
上面2種方法可以解決POST請求中的中文參數(shù),但是GET請求中的中文參數(shù)不能解決,GET請求中的中文參數(shù)的亂碼需要通過修改Tomcat的server.xml文件來解決,修改如下內(nèi)容,加入U(xiǎn)RIEncoding=”GBK”:<Connectorport="8080"URIEncoding="GBK"/>
2.3Struts2的工作環(huán)境(5)interceptors元素用于定義攔截器集合的元素,它可以有多個(gè)<interceptor子元素。(6)interceptor元素此元素主要是用于配置攔截器,是<interceptors>元素的子元素,主要有以下兩個(gè)屬性:name:指定攔截器的邏輯名稱,在配置文件中其他地方可通過name的值引用攔截器。class:指定具體處理攔截器的類。如<interceptorname=“l(fā)ogger”class=“interceptor.LoggingInterceptor”/>定義了一日志攔截器。
2.3Struts2的工作環(huán)境(7)interceptor-ref元素此元素是在某個(gè)actoin中引用攔截器,它是action元素的子元素,可以通過name屬性指定要引用的攔截器。如<interceptor-refname="logger"/>引用了前面定義的攔截器。(8)interceptor-stack元素此元素用于定義攔截器棧,也就是在這里可定義多個(gè)攔截器的引用,它可以有多個(gè)<interceptor-ref>子元素,將來可在配置文件中通過<interceptor-stack>元素的name屬性的值進(jìn)行引用,這樣可以提高代碼的利用率,也便于維護(hù)。以上列出的是一些常用的元素,還有一些沒有在此列出,如需要可查閱struts的幫助文檔。
2.3Struts2的工作環(huán)境2.4Action的創(chuàng)建和配置業(yè)務(wù)控制器Action類是用戶請求和業(yè)務(wù)邏輯之間的橋梁,是Struts2框架的核心組件,負(fù)責(zé)具體的業(yè)務(wù)邏輯處理。對于開發(fā)者而言,主要的編寫工作是編寫action類。
Action創(chuàng)建Struts2中的Action類用來接收用戶請求,然后調(diào)用模型組件去處理業(yè)務(wù)邏輯,最后返回一個(gè)字符串,Struts2框架會根據(jù)該字符串的值調(diào)用相應(yīng)的頁面顯示。Action類里通常包含了一個(gè)execute方法,當(dāng)業(yè)務(wù)控制器處理完用戶請求后,根據(jù)處理結(jié)果不同,返回不同字符串。2.4Action的創(chuàng)建和配置業(yè)務(wù)控制器Action類是用戶請求和業(yè)務(wù)邏輯之間的橋梁,是Struts2框架的核心組件,負(fù)責(zé)具體的業(yè)務(wù)邏輯處理。對于開發(fā)者而言,主要的編寫工作是編寫action類。1.Java類Action類可以是一個(gè)普通的Java類(POJO,PlainOrdinaryJavaObject),實(shí)現(xiàn)了與ServletAPI完全分離,這是Struts2的最大特點(diǎn)。在該類中通常包含以下內(nèi)容:(1)無參數(shù)的execute()方法:用于處理用戶請求,返回一個(gè)與視圖資源對應(yīng)的字符串。(2)成員變量及其setter和getter方法:Action類中封裝HTTP請求參數(shù),程序通過成員變量的setter()和getter()方法來處理請求參數(shù),因此成員變量的名稱應(yīng)該與HTTP請求參數(shù)的名稱一致。以下是HelloWord類的代碼。2.4Action的創(chuàng)建和配置2.繼承Action接口實(shí)現(xiàn)Action類
struts2中提供了一個(gè)接口:com.opensymphony.xwork2.Action,這個(gè)接口中定義了一些常量和execute方法,使開發(fā)流程更加規(guī)范。下面是Action接口的源代碼。publicabstractinterfaceAction{ //定義常量 publicstaticfinaljava.lang.StringSUCCESS="success"; publicstaticfinaljava.lang.StringNONE="none"; publicstaticfinaljava.lang.StringERROR="error"; publicstaticfinaljava.lang.StringINPUT="input"; publicstaticfinaljava.lang.StringLOGIN="login"; //定義抽象方法 publicStringexecute()throwsException;。2.4Action的創(chuàng)建和配置3.繼承ActionSupport實(shí)現(xiàn)Action通過繼承ActionSupport來實(shí)現(xiàn)Action是最常用的方法,ActionSupport實(shí)現(xiàn)了Action接口,另外還實(shí)現(xiàn)了Vlidateable接口,ValidationAware接口,TextProvider接口等,提供了輸入驗(yàn)證、國際化、execute等常用方法,使得編寫Action時(shí)代碼更加簡單。ActionSupport類的源程序部分代碼如下:2.4Action的創(chuàng)建和配置publicclasscom.opensymphony.xwork2.ActionSupportimplementscom.opensymphony.xwork2.Action,com.opensymphony.xwork2.Validateable,com.opensymphony.xwork2.ValidationAware,com.opensymphony.xwork2.TextProvider,com.opensymphony.xwork2.LocaleProvider,java.io.Serializable{
//添加字段異常 publicvoidaddFieldError(java.lang.StringfieldName,java.lang.StringerrorMessage){} //execute publicStringexecute()throwsException{}//輸入驗(yàn)證 publicvoidvalidate(){}
}2.4Action的創(chuàng)建和配置繼承ActionSupport實(shí)現(xiàn)的Action實(shí)例:packagechap2;importcom.opensymphony.xwork2.ActionSupport;publicclassHelloWorldextendsActionSupport{ privateStringmessage; publicStringgetMessage(){ returnmessage; } publicvoidsetMessage(Stringmessage){ this.message=message; } @Override publicStringexecute()throwsException{ //TODOAuto-generatedmethodstub message="大家好!"; returnSUCCESS; }}2.4Action的創(chuàng)建和配置
Action多方法調(diào)用在struts.xml文件中Action中可以配置不同的方法調(diào)用,<action>元素用來配置Action,它包含的屬性主要見表2-4。表2-4action的屬性及功能屬性名稱功能說明是否必須nameAction的名稱是classAction處理類對應(yīng)的類名否method指定調(diào)用Action的該方法否converter指定使用Action的類型轉(zhuǎn)換器否2.4Action的創(chuàng)建和配置其中name屬性是必須的,其他屬性都是可選的。在為action取名時(shí),名字一般符合命名規(guī)則,不要使用點(diǎn)號和斜杠。method屬性是可選屬性,如果沒有配置method屬性,所有請求都會被轉(zhuǎn)發(fā)到Action中的execute()方法處理。Action中的一個(gè)方法代表一個(gè)業(yè)務(wù)邏輯,那么一個(gè)模塊中的多個(gè)業(yè)務(wù)邏輯如何用Action來處理呢?我們有2種辦法來處理這個(gè)問題:2.4Action的創(chuàng)建和配置一個(gè)Action對應(yīng)一個(gè)業(yè)務(wù)邏輯,實(shí)現(xiàn)方便,但是Action數(shù)量多,struts.xml中需要配置的內(nèi)容也多,這種方法不推薦;一個(gè)Action對應(yīng)多個(gè)業(yè)務(wù)邏輯,每個(gè)業(yè)務(wù)邏輯對應(yīng)一個(gè)方法,方法的原型要和execute()方法一樣,在視圖中調(diào)用相應(yīng)action方法為“Action名稱!方法名稱.action”。例2-1在HellowWorl1類中定義一個(gè)login()方法來處理登錄請求2.4Action的創(chuàng)建和配置為了簡化struts.xml文件中的代碼,在struts.xml配置文件中可使用通配符定義Action的name屬性,相當(dāng)于用一個(gè)action元素定義了多個(gè)Action邏輯。定義方法如下<actionname="user_*"class="com.user.LoginAction"method={1}><resultname="success“>/welcome.jsp</result><resultname="error“>/error.jsp</result></action>2.4Action的創(chuàng)建和配置<actionname=“user_*“>定義了一系列URL是user_*.action的請求method={1}是一個(gè)表達(dá)式,值是name屬性中的第一個(gè)“*”的值請求是user_login.action,則調(diào)用login方法請求是user_regist.action,則調(diào)用regist方法例2-2利用通配符*定義一個(gè)action,實(shí)現(xiàn)登錄和注冊兩個(gè)請求。2.4Action的創(chuàng)建和配置
Result類型Struts2的Action處理用戶請求后,返回一個(gè)字符串,必須在struts.xml配置文件中進(jìn)行字符串與實(shí)際視圖的映射,才能完成實(shí)際的控制器功能。在配置文件中是通過<action>的子元素<result>來完成此功能的。其格式為:<resultname=“字符串”type=“視圖類型”>實(shí)際的視圖</result>其中的type屬性可以有多種選擇,Struts2支持各種視圖技術(shù),例如JSP、JSF、XML等,默認(rèn)的是JSP。常見的type類型配置如下:2.4Action的創(chuàng)建和配置
Result類型1.dispatcher轉(zhuǎn)發(fā)到JSP頁面,和<jsp:forwardpage=“URL”/>的效果一樣,是默認(rèn)類型。以下的三種配置效果是一樣的。<result>/Success.jsp</result><resultname=”success”>/Success.jsp</result><resultname=”success”type=”dispatcher”>/Success.jsp</result>2.4Action的創(chuàng)建和配置2.redirect重定向到JSP頁面,和response.sendRedirect(“”)的效果一樣。<resultname=”a”type=“redirect”>/Success.jsp</result>2.4Action的創(chuàng)建和配置3.redirect-action重定向到action,目的地為Action,配置時(shí)可以指定如下兩個(gè)參數(shù):actionName-重定向的Action名;namespace-重定向的Action所在的命名空間。<resultname=”a”type=”redirect-action”><paramname=”actionName”>myaction</param><paramname=”namespace”>/test</param></result>2.4Action的創(chuàng)建和配置4.chain轉(zhuǎn)發(fā)到action,形成action-chain,可以指定兩個(gè)參數(shù):actionName-重定向的Action名;namespace-重定向的Action所在的命名空間。<resulttype=”chain”><paramname=”actionName”>myaction</param><paramname=”namespace”>/test</param></result>2.4
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年翠屏區(qū)敘戎社會工作服務(wù)中心招聘工作人員大??蛇M(jìn)五險(xiǎn)一金備考題庫及一套答案詳解
- 2026年黔西市水西中學(xué)招聘各學(xué)科教師備考題庫及參考答案詳解1套
- 2026年西華大學(xué)美術(shù)與設(shè)計(jì)學(xué)院碩士教師招聘備考題庫及答案詳解1套
- 2026年月份編外招聘備考題庫及一套答案詳解
- 塔里木大學(xué)2026專任教師公開招聘備考題庫及完整答案詳解一套
- 中學(xué)學(xué)生社團(tuán)活動(dòng)檔案管理制度
- 2026年玉環(huán)市流動(dòng)人口服務(wù)中心招聘流動(dòng)人口專管員備考題庫及完整答案詳解1套
- 2026年英德市浛洸醫(yī)院(英德市醫(yī)療衛(wèi)生共同體浛洸分院)合同聘用制人員招聘備考題庫及1套參考答案詳解
- 中誠建川(涼山)電力有限公司公開招聘20名工作人員備考題庫及答案詳解1套
- 養(yǎng)老院老人康復(fù)設(shè)施維修人員晉升制度
- 2026屆湖南省常德市石門一中生物高二第一學(xué)期期末統(tǒng)考試題含解析
- 20052-2024電力變壓器能效限定值及能效等級
- 2025年環(huán)境衛(wèi)生學(xué)與消毒滅菌效果監(jiān)測試卷(附答案)
- 冷渣機(jī)調(diào)整課件
- 地埋式生活污水處理工藝技術(shù)方案
- 通信冬季應(yīng)急預(yù)案
- 肺癌全程護(hù)理計(jì)劃
- 學(xué)堂在線 雨課堂 學(xué)堂云 人工智能 章節(jié)測試答案
- 工業(yè)高質(zhì)量數(shù)據(jù)集研究報(bào)告
- 2024城口縣國企招聘考試真題及答案
- 五年級上冊科學(xué)全套單元測試卷含答案(一)蘇教版
評論
0/150
提交評論