歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> SpringMVC注解開發初步

SpringMVC注解開發初步

日期:2017/3/1 9:06:53   编辑:Linux編程

一、(補充)視圖解析器---XmlViewResolver

作用:分離配置信息。

在視圖解析器---BeanNameViewResolver的基礎之上進行擴充,新建一個myView.xml分離信息

在applicationContext.xml中進行配置XmlViewResolver,以及處理器配置

myView.xml:

實現效果:


二、SpringMVC注解開發

常用的兩個注解:

@Controller:是SpringMVC中最常用的注解,它可以幫助定義當前類為一個Spring管理的bean,同時指定該類是一個控制器,可以用來接受請求。標識當前類是控制層的一個具體的實現

@requestMapping:放在方法上面用來指定某個方法的路徑,當它放在類上的時候相當於命名空間需要組合方法上的requestmapping來訪問

擴充:

注解名稱

作用

@Controller

注解標明該類需要Spring容器自動加載,將一個類成為 Spring 容器的 Bean。

@RequestMapping

可以標注在類定義處,將 Controller 和特定請求關聯起來;還可以標注在方法簽名處。所以在類聲明處標注的 @RequestMapping 相當於讓 POJO 實現了 Controller 接口,而在方法定義處的 @RequestMapping 相當於讓 POJO 擴展 Spring 預定義的 Controller(如 SimpleFormController 等)。

@Resource

用來注解該屬性的SETTER方法參數來源於Spring Bean

@ModelAttribute

①綁定請求參數到命令對象:放在功能處理方法的入參上時,用於將多個請求參數綁定到一個命令對象,從而簡化綁定流程,而且自動暴露為模型數據用於視圖頁面展示時使用;

②暴露表單引用對象為模型數據:放在處理器的一般方法(非功能處理方法)上時,是為表單准備要展示的表單引用對象,如注冊時需要選擇的所在城市等,而且在執行功能處理方法(@RequestMapping注解的方法)之前,自動添加到模型對象中,用於視圖頁面展示時使用;

③暴露@RequestMapping方法返回值為模型數據:放在功能處理方法的返回值上時,是暴露功能處理方法的返回值為模型數據,用於視圖頁面展示時使用。

@SessionAttributes

代表被注解對象會被存放到HttpSession作用域

@PathVariable

用於將請求URL中的模板變量映射到功能處理方法的參數上

@requestParam

用於將請求參數區數據映射到功能處理方法的參數上


入門案例:

① Springmvc的包掃描器:

由於使用了基於注解的Controller,所以這裡指定了需要被掃描的包路徑,如果有多個可以使用逗號分隔。


處理器類:[一個處理類中也可定義N個處理器方法]


2、請求中的通配符用法

實現效果:



3、請求中方式的定義

對於@RequestMapping,有一個屬性method,用於對被注解方法所處理請求的提交方式進行限制,只有滿足該method屬性指定的提交方式,才會執行被注解方法。 method屬性的取值為RequestMethod,是一個枚舉常量。常用值為 RequestMethod.GET 與 RequestMethod.POST


4、處理器方法的參數

處理器方法中常用的參數有五類,這些參數會在系統調用時由系統自動賦值,即程序員可在方法內直接使用:

①HttpServletRequest

②HttpServletResponse

③HttpSession

④用於承載數據的Model

⑤請求中所攜帶的請求參數

前三種實現方式:

1 2 3 4 5 6 7 8 @RequestMapping(value="/one.do",method=RequestMethod.GET) public String doFirst(HttpServletRequest request,HttpServletResponse response,HttpSession session){ System.out.println(request); System.out.println(response); System.out.println(session); return "index"; }


用於承載數據的Model:零散參數

1 2 3 4 5 6 7 8 9 10 @RequestMapping(value="/one.do",method=RequestMethod.GET) public String doFirst(Model model){ Map<String,Object> datas=new HashMap<String, Object>(); datas.put("uname", "逗比 ^^"); model.addAllAttributes(datas); System.out.println(model); return "index"; }

 


對象參數:裝配成實體

自定義實體類:UserInfo

1 2 3 4 5 6 7 8 9 10 11 12 public class UserInfo { private String uname; public String getUname() { return uname; } public void setUname(String uname) { this.uname = uname; }

 FirstController控制器類方法參數是實體類對象:

1 2 3 4 5 6 7 8 9 10 11 12 13 @Controller @RequestMapping(value="/con") public class FirstController{ @RequestMapping(value="/dofirst.do") public String doFirst(UserInfo info){ System.out.println(info.getUname()); return "index"; } }

 大配置同理:

jsp頁面form表單提交:

實現效果:

控制台會出現亂碼情況,如何解決?


5、解決亂碼問題:Web.xml配置編碼過濾器---CharacterEncodingFilter

SpringMVC+MyBatis集成配置 http://www.linuxidc.com/Linux/2016-09/135212.htm

SpringMVC總結篇 http://www.linuxidc.com/Linux/2016-06/132659.htm

Spring+SpringMVC企業快速開發架構搭建 http://www.linuxidc.com/Linux/2015-09/122942.htm

SpringMVC的亂碼處理 http://www.linuxidc.com/Linux/2015-07/120542.htm

Spring MVC+Spring3+Hibernate4開發環境搭建 http://www.linuxidc.com/Linux/2013-07/87119.htm

Spring MVC整合Freemarker基於注解方式 http://www.linuxidc.com/Linux/2013-02/79660.htm

基於注解的Spring MVC簡單介紹 http://www.linuxidc.com/Linux/2012-02/54896.htm

SpringMVC詳細示例實戰教程 http://www.linuxidc.com/Linux/2015-06/118461.htm

SpringMVC錯誤頁面配置 http://www.linuxidc.com/Linux/2016-12/138097.htm

SpringMVC 異常處理 http://www.linuxidc.com/Linux/2015-06/119049.htm

SpringMVC框架入門配置 IDEA下搭建Maven項目 http://www.linuxidc.com/Linux/2016-09/134918.htm

Copyright © Linux教程網 All Rights Reserved