springMVC中关于RequestMapping属性的介绍

@RequestMapping(value="/testParam",params={"username!=andy","age"})
	public String testParam(){
		System.out.println("testParam");
		return SUCCESS;
	}

以上的params是说URL中一定要有username和age的值,而且username的值不能等于andy(默认请求方式是get)

@RequestMapping(value="/testHeader",headers="Accept-Language=en-U,zh-CN;q=0.8,zh;q=0.6,en;q=0.4")
	public String testHeader(){
		System.out.println("testHeader");
		return SUCCESS;
	}

以上headers是请求头的信息(一般很少用)

/**
	 * Ant风格的请求路径映射
	 *   ? 表示任意一个字符
	 *   * 表示任意字符
	 *   ** 表示多级目录
	 */
	@RequestMapping(value="/testAntPath/*/anseon")
	public String testAntPath(){
		System.out.println("testAntPath");
		return SUCCESS;
	}

/**
	 * https://www.douyu.com/485503 restful风格
	 * {roomId}占位符,当做参数处理
	 * 
	 * 1.参数的名字和占位符的名字保持一致
	 * 2.@PathVariable中的名字和占位符中的名字一致,参数的名字就任意
	 * @return
	 */
	@RequestMapping("/testPathVariable/{roomId}")
	public String testPathVariable(@PathVariable("roomId") Integer roomId){
		System.out.println("testPathVariable:"+roomId);
		return SUCCESS;
	}

以上的@PathVariable("roomId"),当占位符名字与参数名一样的时候,就不需要特殊指明


以下代码是取消强制要求,而且要注意:一般只要请求参数中的名字跟接受参数的名字一致时,会自动赋值,如果名字不一样,可以指明参数名字,用来匹配请求参数中的名字

例如:http://localhost:8080/testRequestParam/name="andy",一样可以赋值到username中

/**
     * 如果方法的参数被@RequestParam注解修饰,那么请求参数中
     * 必须包含该名字的参数,如果采用required= false就能不强制要求
     * @param username
     * @param age
     * @return
     */
	@RequestMapping(value ="/testRequestParam")
	public String testRequestParam(@RequestParam(value = "name",required= false)String username,
			@RequestParam(required=false,defaultValue="0")Integer age){
		System.out.println("username="+username+":age="+age);
		return SUCCESS;
	}

@RequestMapping(value ="/testRequestHeader")
	public String testRequestHeader(@RequestHeader("Accept-Language")String header){
		System.out.println("testRequestHeader"+header);
		return SUCCESS;
	}
以上的意思是:将请求头中的Accept-Language赋值给header


@RequestMapping(value ="/testCookieValue")
	public String testCookieValue(@CookieValue("JSESSIONID")String value){
		System.out.println("testCookieValue"+value);
		return SUCCESS;
	}
以上的意思是:将JSESSIONID的值赋值给value


猜你喜欢

转载自blog.csdn.net/Luke_R/article/details/78345383