SpringMVC註解開發初步

1、(補充)視圖解析器---XmlViewResolverjava

做用:分離配置信息。程序員

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

 

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

myView.xml:app

實現效果:jsp


2、SpringMVC註解開發this

 經常使用的兩個註解:編碼

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

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

 擴充:

註解名稱

做用

@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個處理器方法]


 二、請求中的通配符用法

 

實現效果:

 

 


 


三、請求中方式的定義

對於@RequestMapping,有一個屬性method,用於對被註解方法所處理請求的提交方式進行限制,只有知足該method屬性指定的提交方式,纔會執行被註解方法。 method屬性的取值爲RequestMethod,是一個枚舉常量。經常使用值爲 RequestMethod.GETRequestMethod.POST


四、處理器方法的參數

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

①HttpServletRequest

②HttpServletResponse

③HttpSession

④用於承載數據的Model

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

前三種實現方式:

	@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:零散參數

@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

public class UserInfo {

	private String uname;

	public String getUname() {
		return uname;
	}

	public void setUname(String uname) {
		this.uname = uname;
	}
	

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

@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表單提交:

實現效果:

控制檯會出現亂碼狀況,如何解決?


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

相關文章
相關標籤/搜索