springMVC學習(三)controller
-
Controller方法的返回值有5種:
-
void
-
String
-
ModelAndView
-
redirect重定向
-
forward轉發
-
使用註解開發
使用@Controller註解,就表明這是一個SpringMVC的控制器,使用了註解以後就不用顯示地繼承或實現任何類了
-
在spring配置檔案中掃描使用了註解的包
-
使用@Controller,@RequestMapping開發
基於註解和基於XML來開發SpringMVC,都是通過對映器、介面卡和檢視解析器的。 只是對映器、介面卡略有不同。但是都是可以省略的
<!-- 基於註解的對映器(可選) -->
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"/>
<!-- 基於註解的介面卡(可選) -->
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"/>
<!-- 檢視解析器(可選) -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"/>
上面兩個配置也可以使用 註解驅動<mvc:annotation-driven> 替代註解處理器和介面卡的配置
-
RequestMapping功能
-
控制請求路徑,使一個控制器可以寫多個業務方法
-
分模組開發,@RequestMapping註解寫到類上面去,就代表了分模組
訪問地址
http://localhost:8080/hjy/hello.action
-
限制請求方法,使用method屬性(也可以使用@GetMapping、@PostMapping直接限制請求方法)
該業務方法只能通過post請求訪問
-
引數接收
-
接收普通引數,直接在方法上寫上與web端帶過來名稱相同的引數就行了
-
接收JavaBean
-
建立Javabean,javaBean屬性與表單帶過來的名稱相同
-
在業務方法上傳入引數Javabean
-
-
接收陣列,對應前端傳入單選框或多選框,直接在業務方法上傳入陣列,要求和前端的引數名稱一樣
-
接收List<JavaBean>,使用一個JavaBean把集合封裝起來,給出對應的set和get方法。那麼我們在接收引數的時候,其實接收的是JavaBean,這個JavaBean是一個List【與接收普通的JavaBean類似的】。
-
接收多個不同的JavaBean,抽象出一個Bean包含這些JavaBean
字串轉日期
前端傳入一個日期(1996-05-24),springmvc預設無法將日期字串轉化為Date,需要用到@InitBinder註解設定日期字串的格式,就可以將前端傳入的日期字串轉化為Date
//在Controller中使用此註解設定日期字串格式
結果重定向和轉發
實現重定向或轉發,只需要請求對應的請求路徑就行了: redirect:請求路徑