美國康寧釋出 2020 年財報:賣螢幕玻璃銷售額達 31.7 億美元
阿新 • • 發佈:2021-01-29
- RequestParam註解
作用:把請求中的指定名稱的引數傳遞給控制器中的形參賦值
屬性
value:請求引數中的名稱
required:請求引數中是否必須提供此引數,預設值是true,必須提供
jsp
<%--RequestParam註解測試--%>
<a href="anno/testRequestParam?name=haha">RequestParam</a>
<br/>
控制層
@RequestMapping("/testRequestParam") public String testRequestParam(@RequestParam(name="name") String username){ System.out.println("執行了"); System.out.println(username); return "success"; }
- RequestBody註解
作用:用於獲取請求體的內容(注意:get方法不可以)
屬性
required:是否必須有請求體,預設值是true
jsp
<%--RequestBody註解測試--%> <form action="anno/testRequestBody" method="post"> 使用者姓名:<input type="text" name="username"/><br/> 使用者年齡:<input type="text" name="age"/><br/> <input type="submit" value="提交"/><br/> </form> <br/>
/**
* 獲取到請求體的內容
* @param
* @return
*/
@RequestMapping("/testRequestBody")
public String testRequestBody(@RequestBody String body){
System.out.println("執行了");
System.out.println(body);
return "success";
}
- PathVariable註解
屬性
value:指定url中的佔位符名稱
Restful風格的URL
請求路徑一樣,可以根據不同的請求方式去執行後臺的不同方法
restful風格的URL優點
結構清晰
符合標準
易於理解
擴充套件方便
<%--PathVariable註解測試--%>
<a href="anno/testPathVariable/10">testPathVariable</a>
<br/>
/**
* PathVariable註解
* 把拿到的sid賦到id上
* @return
*/
@RequestMapping("/testPathVariable/{sid}")
public String testPathVariable(@PathVariable("sid")String id){
System.out.println("執行了");
System.out.println(id);
return "success";
}
4. RequestHeader註解
作用:獲取指定請求頭的值
屬性
value:請求頭的名稱
<%--RequestHeader--%>
<a href="anno/testRequestHeader">testRequestHeader</a>
<br/>
/**
* RequestHeader註解
* 獲取請求頭得值
* @param header
* @return
*/
@RequestMapping("/testRequestHeader")
public String testRequestHeader(@RequestHeader(value = "Accept") String header){
System.out.println("執行了");
System.out.println(header);
return "success";
}
- CookieValue註解
作用:用於獲取指定cookie的名稱的值
屬性
value:cookie的名稱
<%--CookieValue--%>
<a href="anno/testCookieValue">testCookieValue </a>
<br/>
/**
* CookieValue註解
* @param cookieValue
* @return
*/
@RequestMapping("/testCookieValue")
public String testCookieValue(@CookieValue("JSESSIONID") String cookieValue){
System.out.println("執行了");
System.out.println(cookieValue);
return "success";
}
- ModelAttribute註解
作用
出現在方法上:表示當前方法會在控制器方法執行前線執行。
出現在引數上:獲取指定的資料給引數賦值。
應用場景
當提交表單資料不是完整的實體資料時,保證沒有提交的欄位使用資料庫原來的資料。
<%--ModelAttribute註解測試--%>
<form action="anno/testModelAttribute" method="post">
使用者姓名:<input type="text" name="username"/><br/>
使用者年齡:<input type="text" name="age"/><br/>
<input type="submit" value="提交"/><br/>
</form>
<br/>
/**
* ModelAttribute註解
* @return
*/
@RequestMapping("/testModelAttribute")
public String testModelAttribute(@ModelAttribute("abc") User user){
System.out.println("執行了");
System.out.println(user);
return "success";
}
/**
* 沒有返回值情況 引數列表用@MadelAttribute註解取
* @param username
* @param map
*/
@ModelAttribute
public void showUser(String username, Map<String,User> map){
System.out.println(" showUser執行了");
//模擬查詢資料庫資料
User user=new User();
user.setUsername(username);
user.setAge(20);
user.setDate(new Date());
map.put("abc",user);
}
/**
* 該方法會先執行
* 有返回值情況
*/
@ModelAttribute
public User showUser(String username){
System.out.println(" showUser執行了");
//模擬查詢資料庫資料
User user=new User();
user.setUsername(username);
user.setAge(20);
user.setDate(new Date());
//把根據傳來的username查詢到的資料返回
return user;
}
SessionAttributes註解
作用:用於多次執行控制器方法間的引數共享
屬性
value:指定存入屬性的名稱
<%--SessionAttributes註解--%>
<a href="anno/testSessionAttributes">testSessionAttributes</a>
<%--取出SessionAttributes中的值--%>
<a href="anno/getSessionAttributes">getSessionAttributes</a>
<%--刪除SessionAttributes中的值--%>
<a href="anno/delSessionAttributes">delSessionAttributes</a>
/**
* SessionAttributes註解
* @param
* @return
*/
@RequestMapping("/testSessionAttributes")
public String testSessionAttributes(Model model){
System.out.println("執行了");
System.out.println("SessionAttributes.......");
//底層會儲存到request域物件中
model.addAttribute("msg","喜洋洋");
return "success";
}
/**
* 從session域中取值
* @param modelMap
* @return
*/
@RequestMapping("/getSessionAttributes")
public String getSessionAttributes(ModelMap modelMap){
System.out.println("執行了");
System.out.println("getSessionAttributes.......");
//底層會儲存到request域物件中
String msg=(String)modelMap.get("msg");
System.out.println(msg);
return "success";
}
/**
* 刪掉SessionAttributes中的值
* @param modelMap
* @return
*/
@RequestMapping("/delSessionAttributes")
public String delSessionAttributes(SessionStatus status){
System.out.println("執行了");
System.out.println("delSessionAttributes.......");
status.setComplete();
//清楚session中的值 賦值完成
return "success";
}