springmvc學習(二)——使用RequestMapper請求映射


本次內容是@RequestMapping,后面會有實例代碼

Spring MVC 使用 @RequestMapping 注解為控制器指定可以處理哪些 URL 請求在控制器的類定義及方法定義處都可標注@RequestMapping

@RequestMapping不僅可以修飾類,還可以修飾方法。
類定義處:提供初步的請求映射信息。相對於 WEB 應用的根目錄
方法處:提供進一步的細分映射信息。相對於類定義處的 URL。若類定義處未標注 @RequestMapping,則方法處標記的 URL 相對於WEB 應用的根目錄
DispatcherServlet 截獲請求后,就通過控制器上 @RequestMapping 提供的映射信息確定請求所對應的處理方法。

映射請求參數、請求方法或請求頭

@RequestMapping 除了可以使用請求 URL 映射請求外, 還可以使用請求方法、請求參數及請求頭映射請求
@RequestMapping 的 value、method、params 及 headers 分別表示請求 URL、請求方法、請求參數及請求頭的映射條件,他們之間是與的關系,聯合使用多個條件可讓請求映射更加精確化。
params 和 headers支持簡單的表達式:
param1: 表示請求必須包含名為 param1 的請求參數
!param1: 表示請求不能包含名為 param1 的請求參數
param1 != value1: 表示請求包含名為 param1 的請求參數,但其 值不能為 value1
{“param1=value1”, “param2”}: 請求必須包含名為 param1 和param2 的兩個請求參數,且 param1 參數的值必須為 value1

實例代碼

@RequestMapping("/springmvc")
@Controller
public class requestmapper {
	private static final  String SUCCESS="success";
	@RequestMapping(value="/testparamheader" ,params={"username","age!=10"}
	,headers="Accept-Language=zh-CN,zh;q=0.8")
	public String testParam(){
		
		System.out.println("testParam");
		return SUCCESS;
	}
	
	@RequestMapping(value="/testMethod" ,method=RequestMethod.POST)
	public String testMethod(){
		
		System.out.println("testMethod");
		return SUCCESS;
	}
	
	@RequestMapping("/requestmap")
	public String requestmap(){
		
		System.out.println("RequestMapper");
		return SUCCESS;
	}

}

 index.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<a href="springmvc/testparamheader?username&age=11">testparamheader</a>
<form action="springmvc/testMethod" method="post">
<input type="submit" value="submit">
</form>
<a href="helloworld">hello world</a>
<a href="springmvc/requestmap">requestmap</a>
</body>
</html>

 結果還是全部映射到success.jsp的物理視圖

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM