- RequestParam注解 作用:把请求中的指定名称的参数传递给控制器中的形参赋值 属性 value:请求参数中的名称 required:请求参数中是否必须提供此参数,默认值是true,必须提供 jsp
<%--RequestParam注解测试--%>
<a href="anno/testRequestParam?name=haha">RequestParam</a>
<br/>
控制层
代码语言:javascript复制 @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/>
代码语言:javascript复制 /**
* 获取到请求体的内容
* @param
* @return
*/
@RequestMapping("/testRequestBody")
public String testRequestBody(@RequestBody String body){
System.out.println("执行了");
System.out.println(body);
return "success";
}
- PathVariable注解 作用:拥有绑定url中的占位符的。例如:url中有/delete/{id},{id}就是占位符 属性 value:指定url中的占位符名称 Restful风格的URL 请求路径一样,可以根据不同的请求方式去执行后台的不同方法 restful风格的URL优点 结构清晰 符合标准 易于理解 扩展方便
<%--PathVariable注解测试--%>
<a href="anno/testPathVariable/10">testPathVariable</a>
<br/>
代码语言:javascript复制/**
* 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:请求头的名称
代码语言:javascript复制 <%--RequestHeader--%>
<a href="anno/testRequestHeader">testRequestHeader</a>
<br/>
代码语言:javascript复制 /**
* 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/>
代码语言:javascript复制 /**
* 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/>
代码语言:javascript复制 /**
* 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:指定存入属性的名称
代码语言:javascript复制 <%--SessionAttributes注解--%>
<a href="anno/testSessionAttributes">testSessionAttributes</a>
<%--取出SessionAttributes中的值--%>
<a href="anno/getSessionAttributes">getSessionAttributes</a>
<%--删除SessionAttributes中的值--%>
<a href="anno/delSessionAttributes">delSessionAttributes</a>
代码语言:javascript复制 /**
* 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";
}