**先補充昨天沒有看到的springMVC視圖解析器的做用web
主要是屬性 前綴prefix 和後綴 suffix。能夠在視圖解析過程,即在ModelAndView中省略文件前綴名和後綴名spring
**以及組件掃描controller <contxt:component-scan>session
今天主要學習內容:mvc
1.窄化請求app
a)在controller類下,即標註爲@controller下添加requestMapping("/a");則訪問路徑爲/a/xx.actionjsp
b)在requestMapping中添加method能夠限定請求訪問的方式,例如post,get..post
2.Controller返回值學習
a)ModelAndView 我的更喜歡這種方式,只要對modelAndView進行配置,不須要動形參spa
在使用重定向redirect和轉發forward時,轉發地址是映射地址,即xx.action,不是普通設置的文件地址調試
格式爲"forward:xx.action"
b)String 返回值直接爲jsp地址,model做爲形參,並會傳給request.
3.形參綁定
今天使用的我的理解就是在網頁端填寫的Parameter值做爲形參傳給Controller,實現對錶單值的操做。
形參的幾種寫法:a)直接寫,可是名字要與Parameter的name值保持一致
b)標籤寫法, (@requestParam value="name值")
當形參爲pojo對象時,也保持與name值一致
而後默認幾種類型 HttpServletRequest,HttpServletResponse,session,Model..
4.自定義參數的綁定
由於有用到參數類型爲Date的屬性,而網頁中提交的text是字符串String類型,因此須要在SpringMVC的處理器適配器中註冊轉換器
具體註冊轉換器方法:
1)在適配器上註冊轉換器
<mvc:annotation-driven conversion-service="conversionService">
2)在bean中建立轉換器對象
<!-- 自定義參數綁定 -->
<bean id="conversionService" class="org.springframework.format.support.FormattingConversionServiceFactoryBean">
<!-- 轉換器 -->
<property name="converters">
<list>
<bean class="controller.converter.CustomDateConverter"/>
</list>
</property>
</bean>
3)寫實現類,繼承org.springframework.core.convert.converter.Converter
在這裏也複習了下SimpleDateFormat和parase方法(都快忘了)
今天遇到的問題:
1.在形參傳入的時候,無論怎麼調試,發現表單提交後的那個頁面controller方法裏傳入的形參一直爲Null,在查找後已經解決。檢查表單中配置是否有 enctype="multipart/form-data" ,原理是它會讓數據已二進制傳遞,因此表現爲null。
2.在controller中ModelAndView setViewName方法裏實現foward轉發和Redirct重定向時,其中轉發的目標是映射器的映射即action,不是jsp文件!!!而且不能有/,有/意味着是在web工程下,特別是在Controller類中定義了窄化請求,就沒法獲得窄化請求的路徑。