恩,接着學習了bean中的配置,由於使用了自動搜索和註解功能,我們的controller不需要在spring和springMVC的配置文件中出現了,節省了不少複雜的配置,呵呵。別的不說,先上源碼
@Controller
@SessionAttributes("currUser")
public class UserController
類的開頭使用註解告訴spirngmvc這個類是一個Controller類@Controller,然後告訴這個類中使用了一個作用域爲session的對象@SessionAttributes("currUser")
@Autowired:spring的自動裝配註解。這裏我們注入了三個類,Validator、UserService、UserDAO,其中Validator爲springmvc的服務器參數校驗對象。
@RequestMapping(value = "/register.htm", method = RequestMethod.POST):這裏告訴springmvc處理使用post方式提交到url爲/register.htm路徑的時候,採用註解下方法處理請求。
public String processRegister(UserVO userVO, BindingResult bindingBizResult, ModelMap map) {
validator.validate(userVO, bindingBizResult);
if (!bindingBizResult.hasErrors()) {
由於使用了springmvc提供的宏和參數綁定機制,方法的參數中:
UserVO中數據爲springmvc綁定參數後POJO對象
bindingBizResult爲springmvc默認綁定處理類
ModelMap爲數據回寫對象,需要將什麼內容寫回頁面就要用到它了;)
return "redirect:index.htm";和return "/register";
大家可以看到有兩種回覆方式,redirect:是說明這次返回採用外部重定向方式進行頁面跳轉,後則則說明是直接渲染相應視圖頁面。
使用了註解之後,springmvc的controller現在就很簡潔了,以前做了個struts的框架,儘管最後是由BaseAction通過反射轉發請求道相應Action上,但是仍然沒有這個好用!