




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、Spring MVC 技術(shù)體系介紹2022-4-211Spring MVC 培訓(xùn)培訓(xùn)孫林孫林MVC模式介紹Spring MVC 架構(gòu)Spring MVC 重要組件2022-4-212Spring MVC 培訓(xùn)培訓(xùn)孫林孫林目錄目錄MVCMVC模式介紹模式介紹J2EEJ2EE中的中的MVCMVC2022-4-213Spring MVC 培訓(xùn)培訓(xùn)孫林孫林模型-視圖-控制器(Model-View-Controller)把一個應(yīng)用的輸入、處理、輸出流程按照Model、View、Controller的方式進行分離,這樣一個應(yīng)用被分成三個層模型層、視圖層、控制層。MVC模式是解決了展示以及業(yè)務(wù)邏輯實現(xiàn)的分離
2、。讓開發(fā)者可以專心地解決不同層的編碼。也方便代碼重用和測試和維護。JSP、HTML、XMLServlet、Struts、Spring實體Bean 、Entity、VO、FormBean2022-4-214Spring MVC 培訓(xùn)培訓(xùn)孫林孫林Services層層View展示層Controller控制層業(yè)務(wù)邏輯處理層數(shù)據(jù)持久化層(DAO)實體Bean、Entity層數(shù)據(jù)庫2022-4-215Spring MVC 培訓(xùn)培訓(xùn)孫林孫林MVC是一種復(fù)合模式,結(jié)合了觀察者模式、策略模式、組合模式、適配器模式。模型使用觀察者模式,以便觀察者更新,同時保持兩者之間的解耦??刂破魇且晥D的策略,視圖使用組合模式實
3、現(xiàn)用戶界面。適配器模式用來將模型適配成符合現(xiàn)有視圖和控制器的需要的模型。這些模式合作把MVC模式的三層解耦。2022-4-216Spring MVC 培訓(xùn)培訓(xùn)孫林孫林 視圖視圖(View)(View)代表用戶交互界面,對于代表用戶交互界面,對于WebWeb應(yīng)用來說,應(yīng)用來說,可以是可以是HTMLHTML,也可能是,也可能是jspjsp、XMLXML和和AppletApplet等。一等。一個應(yīng)用可能有很多不同的視圖,個應(yīng)用可能有很多不同的視圖,MVCMVC設(shè)計模式對于設(shè)計模式對于視圖的處理僅限于視圖上數(shù)據(jù)的采集和處理,以及視圖的處理僅限于視圖上數(shù)據(jù)的采集和處理,以及用戶的請求,而不包括在視圖上的
4、業(yè)務(wù)流程的處理。用戶的請求,而不包括在視圖上的業(yè)務(wù)流程的處理。業(yè)務(wù)流程的處理交予模型業(yè)務(wù)流程的處理交予模型(Model)(Model)處理。處理。 比如一個訂單的視圖只接受來自模型的數(shù)據(jù)并顯比如一個訂單的視圖只接受來自模型的數(shù)據(jù)并顯示給用戶,以及將用戶界面的輸入數(shù)據(jù)和請求傳遞示給用戶,以及將用戶界面的輸入數(shù)據(jù)和請求傳遞給控制和模型。給控制和模型。2022-4-217Spring MVC 培訓(xùn)培訓(xùn)孫林孫林 模型模型(Model)(Model):是業(yè)務(wù)的處理以及業(yè)務(wù)規(guī)則的制定。模型接受:是業(yè)務(wù)的處理以及業(yè)務(wù)規(guī)則的制定。模型接受視圖請求的數(shù)據(jù),并返回最終的處理結(jié)果。業(yè)務(wù)模型的設(shè)計是視圖請求的數(shù)據(jù),并
5、返回最終的處理結(jié)果。業(yè)務(wù)模型的設(shè)計是MVCMVC最主要的核心。最主要的核心。MVCMVC設(shè)計模式告訴我們,把應(yīng)用的模型按一設(shè)計模式告訴我們,把應(yīng)用的模型按一定的規(guī)則抽取出來,抽取的層次很重要,抽象與具體不能隔得太定的規(guī)則抽取出來,抽取的層次很重要,抽象與具體不能隔得太遠,也不能太近。遠,也不能太近。MVCMVC并沒有提供模型的設(shè)計方法,而只是組織并沒有提供模型的設(shè)計方法,而只是組織管理這些模型,以便于模型的重構(gòu)和提高重用性。管理這些模型,以便于模型的重構(gòu)和提高重用性。業(yè)務(wù)模型還有一個很重要的模型那就是數(shù)據(jù)模型。數(shù)據(jù)模型業(yè)務(wù)模型還有一個很重要的模型那就是數(shù)據(jù)模型。數(shù)據(jù)模型主要指實體對象的數(shù)據(jù)保存
6、(持續(xù)化)。比如將一張訂單保存到主要指實體對象的數(shù)據(jù)保存(持續(xù)化)。比如將一張訂單保存到數(shù)據(jù)庫,從數(shù)據(jù)庫獲取訂單。我們可以將這個模型單獨列出,所數(shù)據(jù)庫,從數(shù)據(jù)庫獲取訂單。我們可以將這個模型單獨列出,所有有關(guān)數(shù)據(jù)庫的操作只限制在該模型中。有有關(guān)數(shù)據(jù)庫的操作只限制在該模型中。2022-4-218Spring MVC 培訓(xùn)培訓(xùn)孫林孫林 控制控制(Controller)(Controller)可以理解為從用戶接收請求可以理解為從用戶接收請求, , 將模型與視圖將模型與視圖匹配在一起,共同完成用戶的請求。劃分控制層的作用也很匹配在一起,共同完成用戶的請求。劃分控制層的作用也很明顯,它清楚地告訴你,它就是
7、一個分發(fā)器,選擇什么樣的明顯,它清楚地告訴你,它就是一個分發(fā)器,選擇什么樣的模型,選擇什么樣的視圖,可以完成什么樣的用戶請求??啬P?,選擇什么樣的視圖,可以完成什么樣的用戶請求??刂茖硬⒉蛔鋈魏蔚臄?shù)據(jù)處理。制層并不做任何的數(shù)據(jù)處理。 例如,用戶點擊一個連接,控制層接受請求后例如,用戶點擊一個連接,控制層接受請求后, , 并不處理并不處理業(yè)務(wù)信息,它只把用戶的信息傳遞給模型,告訴模型做什么,業(yè)務(wù)信息,它只把用戶的信息傳遞給模型,告訴模型做什么,選擇符合要求的視圖返回給用戶。因此,一個模型可能對應(yīng)選擇符合要求的視圖返回給用戶。因此,一個模型可能對應(yīng)多個視圖,一個視圖可能對應(yīng)多個模型。多個視圖,一個
8、視圖可能對應(yīng)多個模型。2022-4-219Spring MVC 培訓(xùn)培訓(xùn)孫林孫林 Model 1的基礎(chǔ)是JSP文件,它由一些相互獨立的JSP文件和其他一些Java Class組成。這些JSP從HTTP Request中獲得所需要的數(shù)據(jù),處理業(yè)務(wù)邏輯,然后將結(jié)果通過Response返前端瀏覽器。Model 1的應(yīng)該說是唯一的好處是“簡單”,可以大大加快系統(tǒng)的開發(fā)進度。它把表現(xiàn)層和業(yè)務(wù)邏輯層柔和在一起,不利于以后的維護工作以及開發(fā)角色的分配,所以這種模式只能適合于小的系統(tǒng)開發(fā)。2022-4-2110Spring MVC 培訓(xùn)培訓(xùn)孫林孫林Model 2采用面向?qū)ο蠹夹g(shù)實現(xiàn)MVC模式 從而擴展JSP/
9、Servlet的模式。 Model2是MVC在Web上的應(yīng)用。2022-4-2111Spring MVC 培訓(xùn)培訓(xùn)孫林孫林2022-4-2112Spring MVC 培訓(xùn)培訓(xùn)孫林孫林 視圖層采用JSP實現(xiàn);控制層采用Servlet實現(xiàn),整個框架采用同一個Servlet,以實現(xiàn)請求的中轉(zhuǎn);模型層采用Java實現(xiàn),主要決定用來做什么;在模型層后添加了一個DAO,目的是將決定做什么和具體怎么做分開。 整個Web框架大致的流程是:首先客戶端發(fā)送請求,提交JSP頁面給中轉(zhuǎn)器(Servlet);中轉(zhuǎn)器根據(jù)客戶的請求,選擇相應(yīng)的模型層,即Logic,Logic進行相應(yīng)的邏輯處理;如果需要使用數(shù)據(jù)庫,則通過D
10、AO進行相應(yīng)的數(shù)據(jù)庫操作。2022-4-2113Spring MVC 培訓(xùn)培訓(xùn)孫林孫林2022-4-2114Spring MVC 培訓(xùn)培訓(xùn)孫林孫林 Spring MVC是結(jié)構(gòu)最清晰的MVC Model 2實現(xiàn)。它的Action也不叫Action,而是稱做Controller;Controller接收request, response參數(shù),然后返回ModelAndView(其中的Model不是Object類型,而是Map類型)。但在其它的Web Framework中,Action返回值一般都只是一個View Name;Model則需要通過其它的途徑(如request.attribute,Cont
11、ext參數(shù),或Action本身的屬性數(shù)據(jù))傳遞上去。2022-4-2115Spring MVC 培訓(xùn)培訓(xùn)孫林孫林2022-4-2116Spring MVC 培訓(xùn)培訓(xùn)孫林孫林 清晰的角色劃分:控制器(controller)、驗證器(validator)、 命令對象(command object)、表單對象(form object)、模型對象(model object)、 Servlet分發(fā)器(DispatcherServlet)、 處理器映射(handler mapping)、視圖解析器(view resolver)等。 每一個角色都可以由一個專門的對象來實現(xiàn)。 強大而直接的配置方式:將框架類和
12、應(yīng)用程序類都能作為JavaBean配置,支持跨多個context的引用,例如,在web控制器中對業(yè)務(wù)對象和驗證器(validator)的引用。 可適配、非侵入:可以根據(jù)不同的應(yīng)用場景,選擇合適的控制器子類 (simple型、command型、form型、wizard型、multi-action型或者自定義),而不是從單一控制器 (比如Action/ActionForm)繼承。2022-4-2117Spring MVC 培訓(xùn)培訓(xùn)孫林孫林 可重用的業(yè)務(wù)代碼:可以使用現(xiàn)有的業(yè)務(wù)對象作為命令或表單對象,而不需要去擴展某個特定框架的基類。 可定制的綁定(binding) 和驗證(validation):
13、比如將類型不匹配作為應(yīng)用級的驗證錯誤, 這可以保存錯誤的值。再比如本地化的日期和數(shù)字綁定等等。在其他某些框架中,你只能使用字符串表單對象, 需要手動解析它并轉(zhuǎn)換到業(yè)務(wù)對象。 可定制的handler mapping和view resolution:Spring提供從最簡單的URL映射, 到復(fù)雜的、專用的定制策略。與某些web MVC框架強制開發(fā)人員使用單一特定技術(shù)相比,Spring顯得更加靈活。 靈活的model轉(zhuǎn)換:在Springweb框架中,使用基于Map的 鍵/值對來達到輕易地與各種視圖技術(shù)的集成。2022-4-2118Spring MVC 培訓(xùn)培訓(xùn)孫林孫林 可定制的本地化和主題(them
14、e)解析:支持在JSP中可選擇地使用Spring標(biāo)簽庫、支持JSTL、支持Velocity(不需要額外的中間層)等等。 簡單而強大的JSP標(biāo)簽庫(Spring Tag Library):支持包括諸如數(shù)據(jù)綁定和主題(theme) 之類的許多功能。 JSP表單標(biāo)簽庫:在Spring2.0中引入的表單標(biāo)簽庫,使得在JSP中編寫 表單更加容易。 Spring Bean的生命周期可以被限制在當(dāng)前的HTTP Request或者HTTP Session。2022-4-2119Spring MVC 培訓(xùn)培訓(xùn)孫林孫林Spring MVC Spring MVC 重要組件重要組件2022-4-2120Spring
15、MVC 培訓(xùn)培訓(xùn)孫林孫林1. Spring mvc請所有的請求都提交給DispatcherServlet,它會委托應(yīng)用系統(tǒng)的其他模塊負責(zé)負責(zé)對請求進行真正的處理工作。2. DispatcherServlet查詢一個或多個HandlerMapping,找到處理請求的Controller。3. DispatcherServlet請請求提交到目標(biāo)Controller。4. Controller進行業(yè)務(wù)邏輯處理后,會返回一個ModelAndView。5. Dispathcher查詢一個或多個ViewResolver視圖解析器,找到ModelAndView對象指定的視圖對象。6. 視圖對象負責(zé)渲染返回給
16、客戶端。 2022-4-2121Spring MVC 培訓(xùn)培訓(xùn)孫林孫林2022-4-2122Spring MVC 培訓(xùn)培訓(xùn)孫林孫林2022-4-2123Spring MVC 培訓(xùn)培訓(xùn)孫林孫林應(yīng)用了“ Front Controller” 模式 是所有 Spring MVC 請求的中樞。繼承了HttpServlet,是一個Servlet,由WebApplicationContext 加載如果不作其它配置,會加載默認組件2022-4-2124Spring MVC 培訓(xùn)培訓(xùn)孫林孫林web.xml dispatcher org.springframework.web.servlet.Dispatcher
17、Servlet contextConfigLocation WEB-INF/mvc.xml 12022-4-2125Spring MVC 培訓(xùn)培訓(xùn)孫林孫林2022-4-2126Spring MVC 培訓(xùn)培訓(xùn)孫林孫林將web請求映射到正確的處理器(handler)上 , 通常是一個 Controller不需用自定義處理器映射 已經(jīng)內(nèi)置了很多處理器映射策略 在處理器映射中通過配置攔截器(包括處理器執(zhí)行前、執(zhí)行后、或者執(zhí)行前后運行攔截器)將使其功能更強大 2022-4-2127Spring MVC 培訓(xùn)培訓(xùn)孫林孫林 把一個 URL 影射到一個和它名字相同的已注冊的bean 比如 /simple 將影
18、射到一個名為“/simple”的bean。 可以給bean多個名字 (別名) 通過空格來分隔 必須有一個name屬性 “/”在xml中不能定義id屬性 在bean名字中可以使用通配符 (/simple*) 是默認的 HandlerMapping,如果在上下文中沒有找到處理器映射,DispatcherServlet會為你創(chuàng)建一個BeanNameUrlHandlerMapping,但不鼓勵2022-4-2128Spring MVC 培訓(xùn)培訓(xùn)孫林孫林dispatcher-servlet.xml 2022-4-2129Spring MVC 培訓(xùn)培訓(xùn)孫林孫林最常用的處理器映射,將請求的URLs 影射到h
19、andlers由一系列的分別代表URLs 和bean 的名字的name/value 對來定義影射。Bean的名字可以用通配符 (/simple*)2022-4-2130Spring MVC 培訓(xùn)培訓(xùn)孫林孫林dispatcher-servlet.xml /simple.htm=simpleController /test*=testController 2022-4-2131Spring MVC 培訓(xùn)培訓(xùn)孫林孫林u支持慣例優(yōu)先原則 u在它的應(yīng)用上下文中找出所有不同的處理器(handler)(或Controller)bean, 并去掉名稱中的Controller,來定義它的處理器映射。Remove
20、d Controller from class name全部轉(zhuǎn)為小寫前面加 “/” 后面附 *“u例子:WelcomeController映射到“/welcome*”請求URL極大的減少了影射的配置dispatcher-servlet.xml2022-4-2132Spring MVC 培訓(xùn)培訓(xùn)孫林孫林2022-4-2133Spring MVC 培訓(xùn)培訓(xùn)孫林孫林l負責(zé)處理請求負責(zé)處理請求l內(nèi)部參數(shù)繼承內(nèi)部參數(shù)繼承 HttpServletHttpServletnhandleRequest(HttpServletRequest, handleRequest(HttpServletRequest, H
21、ttpServletResponse)HttpServletResponse)l返回一個返回一個 ModelAndView ModelAndView對象對象l所有實現(xiàn)都是線程安全的所有實現(xiàn)都是線程安全的l基本不用自己實現(xiàn)接口基本不用自己實現(xiàn)接口 已經(jīng)提供了很多實用的已經(jīng)提供了很多實用的實現(xiàn)類實現(xiàn)類2022-4-2134Spring MVC 培訓(xùn)培訓(xùn)孫林孫林l封裝了用來渲染頁面的封裝了用來渲染頁面的 model model和和view view lModel Model 用用 java.util.Mapjava.util.Map實現(xiàn)的實現(xiàn)的l添加對象,可以不需用名字添加對象,可以不需用名字: :
22、naddObject(String, Object) addObject(String, Object) 用顯式名字用顯式名字添加添加naddObject(Object) addObject(Object) 用默認名添加用默認名添加 ( (慣例慣例優(yōu)先優(yōu)先) )lView View 用用 String String 或或 View View 對象表示對象表示l類似類似 StrutsStruts的的 ActionAction2022-4-2135Spring MVC 培訓(xùn)培訓(xùn)孫林孫林l通常在我們的應(yīng)用中要求通常在我們的應(yīng)用中要求Controllers:Controllers:n自動作默認處理自動
23、作默認處理 ( (不用編碼不用編碼) )n簡單簡單webweb處理處理n在在web web 層和層和service service 層之間作相應(yīng)的處理層之間作相應(yīng)的處理參數(shù)處理視圖跳轉(zhuǎn)輸入驗證2022-4-2136Spring MVC 培訓(xùn)培訓(xùn)孫林孫林l提供了簡單的操作提供了簡單的操作l用來處理一個簡單的請求用來處理一個簡單的請求protected ModelAndView handleRequestInternal(protected ModelAndView handleRequestInternal( HttpServletRequest request, HttpServletResp
24、onse response) HttpServletRequest request, HttpServletResponse response) String text = service.getText(); String text = service.getText(); return new ModelAndView(simple, text, text); return new ModelAndView(simple, text, text); 2022-4-2137Spring MVC 培訓(xùn)培訓(xùn)孫林孫林l中文叫做一次性控制器,也就像一次性筷子那樣用完即丟 l并不在Spring的Con
25、troller繼承架構(gòu)中,而是一個獨立的接口定義l當(dāng)映射的不是一個model 對象時很有用lBean的作用域必須是prototype ,他們本身不是線程安全的2022-4-2138Spring MVC 培訓(xùn)培訓(xùn)孫林孫林dispatcher-servlet.xml配置作為一個 prototype bean2022-4-2139Spring MVC 培訓(xùn)培訓(xùn)孫林孫林public class ExampleThrowawayController implements ThrowawayController private String message; public void setMessage(
26、String message) this.message = message; public ModelAndView execute() throws Exception String hashCodeMessage = + hashCode() + - + message; return new ModelAndView(throwaway, message, hashCodeMessage); 2022-4-2140Spring MVC 培訓(xùn)培訓(xùn)孫林孫林l提供了一種和數(shù)據(jù)對象交互的方式,并動態(tài)地將來自HttpServletRequest的參數(shù)綁定到指定的數(shù)據(jù)對象上。l功能和Struts中
27、的ActionForm有點像,不過在Spring中,不需要實現(xiàn)任何接口來實現(xiàn)數(shù)據(jù)綁定 lCommand 可以是任何 POJO 通常是一個 domain對象l提供的功能:綁定用戶類型自動驗證自動創(chuàng)建command對象l稍后會用到2022-4-2141Spring MVC 培訓(xùn)培訓(xùn)孫林孫林lAbstractCommandController AbstractCommandController 提供綁定和驗證提供綁定和驗證lSimpleFormController SimpleFormController 除了提供綁定和驗證除了提供綁定和驗證, , 還提供還提供了工作流中的表單處理了工作流中的表單處
28、理n對表單對表單formform處理很有用處理很有用n具體細節(jié)后面介紹具體細節(jié)后面介紹lAbstractWizardFormController AbstractWizardFormController 適合涉及多個頁面適合涉及多個頁面的表單的表單formform處理處理2022-4-2142Spring MVC 培訓(xùn)培訓(xùn)孫林孫林lServletWrappingController and ServletForwardingController ServletWrappingController and ServletForwardingController 為了為了StrutsStruts專
29、門設(shè)計的,在專門設(shè)計的,在springspring攔截器里封裝了攔截器里封裝了Struts servletStruts servlet,作用相當(dāng)于代理作用相當(dāng)于代理StrutsStruts的的ActionServlet ActionServlet lParameterizableViewController ParameterizableViewController 簡單的返回一個指定的視圖名簡單的返回一個指定的視圖名稱,不涉及客戶端視圖技術(shù)(從而避免了在稱,不涉及客戶端視圖技術(shù)(從而避免了在JavaJava代碼中的硬編碼)代碼中的硬編碼) lUrlFilenameViewController
30、 UrlFilenameViewController 會檢查會檢查URLURL,獲取文件請求的文件,獲取文件請求的文件名,并把它作為視圖名加以使用。如:名,并把它作為視圖名加以使用。如:/index.html/index.html對應(yīng)的視圖文件名對應(yīng)的視圖文件名是是index index 2022-4-2143Spring MVC 培訓(xùn)培訓(xùn)孫林孫林2022-4-2144Spring MVC 培訓(xùn)培訓(xùn)孫林孫林u在請求前后添加其它功能u包括攔截器方法 preHandle and po
31、stHandleu包括回調(diào)方法 afterCompletetionu可以通過 HandlerMapping 和一系列Controller關(guān)聯(lián)上2022-4-2145Spring MVC 培訓(xùn)培訓(xùn)孫林孫林u 實現(xiàn) HandlerInterceptor 或WebRequestInterceptoru Spring 提供的幾個實現(xiàn) OvenXxxInViewInteceptor 用于 ORM 架構(gòu)JDO, JPA and Hibernate UserRoleAuthorizationInterceptor 用于各種角色授權(quán)驗證u 其他有用的擴展: 自定義安全, caching, 2022-4-214
32、6Spring MVC 培訓(xùn)培訓(xùn)孫林孫林u 下面的例子提供了一個攔截器,它攔截所有請求,如果當(dāng)前時間不是在上午9點到下午6點,它將用戶重定向到某個頁面。 u 所有的請求都將被TimeBasedAccessInterceptor截獲, 如果當(dāng)前時間不在上班時間,用戶會被重定向到一個靜態(tài)html頁面,提供諸如只有上班時間才能訪問網(wǎng)站之類的告示。 2022-4-2147Spring MVC 培訓(xùn)培訓(xùn)孫林孫林 bean id=handlerMapping class=org.springframework.web.servlet.handler.SimpleUrlHandlerMapping / /*
33、 *.form=editAccountFormController .form=editAccountFormController / /* *.view=editAccountFormController.view=editAccountFormController 2022-4-2148Spring MVC 培訓(xùn)培訓(xùn)孫林孫林package samples;public class TimeBasedAccessInterceptor extends HandlerInterceptorAdapter private int openingTime;private int closingTi
34、me;public void setOpeningTime(int openingTime) this.openingTime = openingTime;public void setClosingTime(int closingTime) this.closingTime = closingTime;public boolean preHandle(HttpServletRequest request,HttpServletResponse response, Object handler) throws Exception Calendar cal = Calendar.getInsta
35、nce();int hour = cal.get(HOUR_OF_DAY);if (openingTime = hour closingTime) return true; else response.sendRedirect(http:/ false;2022-4-2149Spring MVC 培訓(xùn)培訓(xùn)孫林孫林2022-4-2150Spring MVC 培訓(xùn)培訓(xùn)孫林孫林p從一個邏輯視圖名映射到一個視圖對象從一個邏輯視圖名映射到一個視圖對象p可以排序可以排序, , 所以能鏈在一起所以能鏈在一起p對對JSPJSP用戶用戶, , 通常實現(xiàn)通常實現(xiàn) InternalResourceViewResol
36、ver:InternalResourceViewResolver:bean id=internalResourceViewResolver 2022-4-2151Spring MVC 培訓(xùn)培訓(xùn)孫林孫林uVelocityViewResolver VelocityViewResolver 針對針對Velocity templatesVelocity templates設(shè)計的設(shè)計的uFreeMarkerViewResolver FreeMarkerViewResolver 針對針對 FreeMarker FreeMarker templatestemplates設(shè)計的設(shè)計的uResourceBund
37、leViewResolver ResourceBundleViewResolver 映射關(guān)系在一個映射關(guān)系在一個 properties properties 文件文件支持國際化支持國際化uXmlViewResolver XmlViewResolver 映射關(guān)系在映射關(guān)系在XMLXML文件文件2022-4-2152Spring MVC 培訓(xùn)培訓(xùn)孫林孫林2022-4-2153Spring MVC 培訓(xùn)培訓(xùn)孫林孫林n支持的幾種視圖模板技術(shù):InternalResourceView (JSP)JstlView (JSP + JSTL)VelocityView (Velocity)FreeMarkerView (FreeMarker)TilesView (Tiles)TilesJstlView (Tiles + JSTL)n還支持渲染下列視圖:Excel filesPDF filesXSLT resultsJasper Reports202
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度高端住宅無償入住及維護保養(yǎng)合同
- 二零二五年度貸款購車專項基金管理委托協(xié)議
- 二零二五年度教育機構(gòu)入股分紅管理合同
- 二零二五年度勞動仲裁調(diào)解協(xié)議書范本:社會福利機構(gòu)勞動者權(quán)益維護協(xié)議
- 2025年度私人簡易用工合同(家庭清潔與綠化維護)
- 二零二五年度車輛掛靠運輸合同糾紛解決協(xié)議
- 成都設(shè)計咨詢集團有限公司2025年社會公開招聘(19人)筆試參考題庫附帶答案詳解
- 2025陜西中華郡文化旅游景區(qū)招聘(47人)筆試參考題庫附帶答案詳解
- 鐵路局業(yè)務(wù)知識培訓(xùn)課件
- 2025湖北鄂州華容區(qū)城市建設(shè)投資有限公司招聘綜合筆試參考題庫附帶答案詳解
- 2025年上半年四川能投宜賓市敘州電力限公司招聘易考易錯模擬試題(共500題)試卷后附參考答案
- 2025年全國普通話水平測試50套復(fù)習(xí)題庫及答案
- 心理戰(zhàn)、法律戰(zhàn)、輿論戰(zhàn)
- 《餐飲感動服務(wù)》課件
- 肩袖損傷課件
- 骨科手術(shù)術(shù)后切口護理技巧培訓(xùn)課程
- DB3207-T 1047-2023 羊肚菌-豆丹綜合種養(yǎng)技術(shù)規(guī)程
- DB37T 2640-2022 監(jiān)獄安全防范系統(tǒng)建設(shè)技術(shù)規(guī)范
- 修補墻面的報告范文
- 2025年全國煤礦企業(yè)安全管理人員考試題庫(含答案)
- 元宇宙中的刺繡文化展示-洞察分析
評論
0/150
提交評論