-
用Spring MVC開發一個課程管理模塊
配置文件:
【配置1】——web應用的部署描述文件web.xml,當前的web.xml是由maven自動生成的,它用到web-app_2_3的版本,這個標準之下,JSP頁面會默認將EL表達式語言關閉,所以要將它替換掉,使用web_app_2_4以上版本,如下圖,這樣Web應用就可以使用EL表達式。

【配置2】——web.xml中加入Spring和SpringMVC的聲明,以及所需Spring配置文件和SpirngMVC所需路徑,如下圖,所以現在有兩個上下文環境一個是SpringMVC的上下文環境,一個是Spring的上下文環境(提供了所有應用公共使用的一些組件、一些服務,有service層、dao層等等,這些服務是被整個應用所共享的,沒有局限在某一個DispatcherServlet上下文環境之中),另外一個則是與DispatcherServlet上下文相關的WebApplicationContext上下文,該上下文包含Controllers、HandlerMapping、ViewResolver,這里通常指的是配置文件,可以有多個DispatcherServlet,多個DispatcherServlet可以使用公共的WebApplicationContext,可以使用不同的DispathcerServlet進行不同的分發,更好進行不同類型的請求。


【配置3】——DispatcherServlet配置文件的配置。


【配置4】——Spring配置文件的配置。
查看全部 -
Controller——傳統方式
Controller中使用HttpServletRequest對象(方法中使用HttpServletRequest對象)
【步驟1】pom文件中引入Servlet的API

【步驟2】通過request把邏輯數據放入域對象request對象中

課程總結:
1、通過@Controller的annotation聲明了一個Controller
2、通過@RequestMapping的annotation映射了URL和方法,通常出現在類級別和方法級別,二者共同組合完成了對一個URL映射請求的攔截。
3、通過URL template結合使用(@Requestparam and @PathVariable)兩個標記可以將URL路徑之中的參數綁定到方法參數中
4、可以通過使用HttpServletRequest或者HttpSession之類的對象來獲取想要的結果。
查看全部 -
Binding:將請求中的字段按照名字匹配的原則填入對象模型(模型對象和頁面數據的綁定)。
案例:課程添加及保存的維護界面。
描述:創建增加課程的方法,并跳轉課程增加的界面,設定訪問該方法的路徑為admin,請求限定為request,限制有一個請求參數add(意思是瀏覽器訪問時候路徑后+?add),注意:edit.jsp中標簽的name屬性應當和模型對象中的Course屬性名稱一致,
隨后Controller中添加增加課程的方法,該方法通過在方法里設置Course對象來獲取前端form表單提交的數據,這里通過返回"redirect:view2/"+course.getCourseId();就可以重定向到viewCourse2的方法并進行添加課程的展示,添加日志信息確定是否攔截到了表單的數據信息,并把它綁定到了模型對象中log.debug("Info of Course:");log.debug(ReflectionToStringBuilder.toString(course)),ReflectionToStringBuilder是apache.lang包中Builder的一個類,進行日志輸出進行程序的調試很常見,將課程的內容以鍵值對的形式,輸出在日志當中,這樣就可以查看是否映射到了Course對象中。
映射多目錄結構JSP:相對路徑即可。

@ModelAttribute:放在方法參數的注解,也可以完成數據綁定的功能,當@ModelAttribute放在方法參數上時,和使用這個標簽沒有區別。當將@ModelAttribute放在方法上標識的時候,表示執行這個controller類中的@RequestMapping標注的方法前都要先執行標有@ModelAttribute的方法。
查看全部 -
SpringMVC中啟動對JSON的支持:
步驟1:SpringMVC的上下文環境mvc-dispatcher-serlver.xml中配置ContentNegotiatingViewResolver,具體參數不做詳細講解,只需要知道它可以將SpringMVC相同的數據呈現不同的數據表現形式,由于這里主要講解JSON數據格式,這里使用MappingJackson2JsonView工具類庫,將模型數據轉化稱JSON格式。如下圖配置,其中JsonView類的作用是將模型數據轉化成JSON格式。

步驟2:Maven的pom文件引入依賴,使用jackson提供工程的javaBean的JSON的轉換。


案例:Controller中編寫支持JSON的方法,其它同之前課程一樣,只不過方法的返回參數Course前添加了@ResponseBody注解(并不是唯一的方式,它是簡潔的方式,不需要其他配置),返回的數據將以JSON格式進行呈現,可以把數據復制到具有JSON功能的文本編輯器,并使用JSON的視圖進行展示。數據轉換為JSON的格式2:方法返回值前使用@ResponseEntity注解(該注解是SpringMVC抽象的實體,它用泛型包裹了實體類),只需要返回這個類的實例。如下圖(了解)
查看全部 -
網頁503,可能是 mvc.xml中 包名未填寫正確,按視頻添加HelloMVCController,正確的包名如下
<context:component-scan base-package="com.imooc.mvcdemo.controller" use-default-filters="false">
查看全部 -
POM:Project Object Model
查看全部 -
Spring MVC的模塊劃分
查看全部 -
Spring MVC基本概念(動圖)
去掉黑色字,斜體,其余都是配置,真正需要寫的只有Controller
查看全部 -
View:呈現頁面。
查看全部 -
ViewResolver:視圖解析器,根據配置找出需要的視圖對象。
查看全部 -
ModelAndView
查看全部 -
HandlerExecutionChain
查看全部 -
HandlerMapping
查看全部 -
HandlerInterceptor:攔截器的意思,是一個接口,有三個方法分別是preHandle、postHandle、afrerCompletion??稍谡嬲{用Controller之前、之后、以及最終在Model發送到頁面View完全呈現去做很多事情。
查看全部 -
HandlerAdapter:是Controller的一種表現形式。
查看全部
舉報