@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