javascript
jsp springmvc 视图解析器_SpringMVC学习笔记
Springmvc
springmvc是spring框架的一個模塊,springmvc和spring無需通過中間整合層進行整合。
springmvc是一個基于mvc的web框架。
基本概念和執行過程
第一步:瀏覽器發起請求到前端(核心)控制器(DispatcherServlet)
前端控制器決定什么類型的請求會進入springmvc框架。
第二步:前端控制器請求處理器映射器(HandlerMapping)查找處理器(Handler)
映射器作用:根據特定規則查找處理器,找不到報異常。
第三步:處理器映射器(HandlerMapping)向前端控制器返回找到的處理器(Handler)
第四步:前端控制器調用處理器適配器(HandlerAdapter)去執行Handler
適配器作用:執行某種特定的Handler
第五步:處理器適配器去執行處理器(Handler)
第六步:處理器(Handler)執行完成后給處理器適配器返回模型視圖(ModelAndView)
第七步:處理器適配器向前端控制器繼續返回ModelAndView
第八步:前端控制器請求視圖解析器(ViewReslover)去解析視圖
第九步:視圖解析器向前端控制器返回視圖View
第十步:前端控制器進行視圖渲染
第十一步:前端控制器向用戶響應結果
入門程序
l 準備環境和jar包
Spring的4+1
Spring的Spring-web
Spring的Spring-webmvc
jstl
l 創建springmvc配置文件
在classpath下創建springmvc的配置文件,文件名習慣是:springmvc.xml
l 配置前端(核心)控制器
在web.xml文件中配置springmvc的前端控制器DispatcherServlet,且向contextConfigLocation屬性注入springmvc配置文件的路徑。如果不配置contextConfigLocation,默認加載WEB-INF/servletname-servlet.xml
url-pattern的值:*.action、/ 。 /*報錯
l 配置處理器適配器
在springmvc的配置文件中,配置處理器適配器類SimpleControllerHandlerAdapter。能執行實現了Controller接口的Handler。
l 編寫和配置處理器
處理器類Handler,其實功能等價于strtus2的action動作類。需實現controller接口。才能由SimpleControllerHandlerAdapter適配器執行。
向模型視圖填充數據,相當于填充到request域。
在springmvc配置文件中配置處理器類。
<bean name="/hello.action" class="com.springmvc_01.handler.UserHandler"></bean>
l 編寫視圖
在WEB-INF下創建jsp目錄,在目錄中創建index.jsp頁面
l 配置處理器映射器
在springmvc配置文件中配置處理器映射器類BeanNameUrlHandlerMapping,能根據bean的name屬性作為url查找處理器。
l 配置視圖解析器
在springmvc配置文件中配置視圖解析器InternalResourceViewResolver,解析jsp視圖。
l 部署調試
http://ip:port/site/動作名
映射器和適配器
非注解映射器和適配器(掌握)
l 非注解映射器:
org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping
作用:根據bean的name屬性作為url查找。
org.springframework.web.servlet.handler.SimpleUrlHandlerMapping
簡單url映射,配置時,注入mappings指定url和處理器類的映射關系。
注:多個映射器可以共存,前端控制器自動判斷用哪個映射器。
l 非注解適配器:
org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter
要求編寫的Handler實現Controller接口。
org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter
要求編寫的Handler實現HttpRequestHandler接口。
此方法可以通過修改response,設置響應的數據格式,比如響應json等。
多個適配器可以共存
l DispatcherSerlvet.properties文件
位置在:/org/springframework/web/servlet/DispatcherServlet.properties,是框架的配置文件。
前端控制器默認從DispatcherSerlvet.properties文件中加載映射器、適配器、視圖解析器等組件,如果不在配置文件中配置,使用默認的加載。
注解映射器和適配器(掌握)
注解映射器:org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping。
注解適配器:org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter。
l 配置注解映射器適配器
配置主鍵映射器和適配器時,可以用bean配置。
也可以使用<mvc:annotation-driven>配置,默認加載參數綁定方法,json轉換解析器等功能。
開發中使用<mvc:annotation-driven>。
注:注解映射器和適配器必須配對使用。
l 開發注解Handler
n 編寫Handler類
使用@Controller標識它是一個Handler動作類
用@RequestMapping實現方法和url的映射,建議url和方法名一樣
n 配置Handler
可以使用bean單獨配置Handler
也可以使用<context:component-scan>標簽指定掃描的包,自動掃描Handler。
小結
理解springmvc的前端控制器、處理器映射器、處理器適配器、視圖解析器用法。
前端控制器url-pattern的配置:*.action、/
<mvc:annotation-driven>配置注解適配器和映射器
<context:component-scan>配置注解類掃描包
視圖解析器前綴和后綴
配置視圖解析器時,可以注入prefix前綴,和suffix后綴。
用戶訪問的路徑=prefix+用戶url+suffix
Handler詳解
@RequestMapping
l url映射
將handler中的方法映射到url上。
l 窄化請求映射
在動作類上用@RequestMapping指定訪問當前動作類中方法的父路徑。
l 限制請求方式
指定只接受get類型或post類型的請求。
handler方法返回值
l 返回ModelAndView
Handler中的方法可以返回ModelAndView
l 返回String
1. 返回邏輯視圖。
return "/jsp2";真正路徑=前綴+邏輯視圖+后綴
2. 重定向
return "redirect:/index.jsp";
3. 頁面轉發
return "forward:/index.jsp";
l 返回void
當方法返回void時,可以使用request轉發頁面,也可以使用response頁面重定向,也可以使用response指定響應結果,例如響應json數據。
參數綁定
客戶端發送的請求是key/value,經過參數綁定,將請求參數綁定到handler方法的形參上。
l 默認參數綁定
直接在controller方法形參上定義以下類型,可以直接使用。
n HttpServletRequest
n HttpServletResponse
n HttpSession
n Model/ModelMap:Model是一個接口,ModelMap是一個接口實現。
l 簡單類型參數綁定
當請求參數名和controller方法的形參名一致,參數會自動綁定成功。
參數名和方法形參名可以不一致,可以通過@RequestParam對參數進行綁定,。
l Pojo類型參數綁定
頁面中<input>的name屬性的值和handler中的方法的pojo形參中的屬性名一致,自動將頁面中數據綁定到pojo。
l 包裝pojo類型參數綁定
Handler方法中形參類型是包裝pojo,pojo的屬性又是pojo。
讓<input>標簽name屬性的值是handler中方法形參的pojo對象中的pojo屬性的屬性。會自動參數綁定。
集合類型參數綁定
l 數組綁定
頁面發送多個相同key不同value的數據。在handler方法形參中定義數組接收。
l list綁定
在包裝pojo中定義list類型屬性
<input type="text" name="list[0]" value="b">
l map綁定
在包裝pojo中定義map類型屬性。
<input type="checkbox" name="map[key1]" value="c">
自定義converter
controller形參中的pojo對象,如果屬性中有日期類型,可能需要自定義參數綁定。
l 自定義類
自定義類實現Converter接口,重寫方法。
l 配置轉換器
配置自定義參數綁定bean,對應的類是FormattingConversionServiceFactoryBean類,注入converters,指定轉換器類。
在注解配置中用conversion-service引用參數綁定類。
總結
以上是生活随笔為你收集整理的jsp springmvc 视图解析器_SpringMVC学习笔记的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 用python画钢铁侠_用自动铅笔素描画
- 下一篇: ibatis spring框架升级到5.