SpringMVC笔记 01:一些注解的使用

RequestMapping

  • 作用
    表示请求的地址,可以用在类上也可以用在方法上
  • 应用
@RequestMapping(path = "/demo")
public class HelloController {
    //当path属性只有一个值时,path可以省略
    @RequestMapping("/hello")
    public String sayHello() {
        System.out.println("大河之剑天上来!");
        return "success";
    }
}
<a href="demo/hello">Hello</a>
  • 其他属性
    1.method = RequestMethod.GET ( 限制请求方式 )
    2.value = “/hello” ( 与path属性相同 )
    3.params = {“username=dudu”} ( 限制请求参数,只有参数符合条件才能正常请求 )

RequestParam

  • 作用
    处理请求参数与响应请求的函数的参数名不相同的问题
  • 应用
@RequestMapping("/requestParam")
public String testRequestParam(@RequestParam(name = "name", required = false) String username) {
    System.out.println("用户名:" + username);
    return "success";
}
<a href="anno/requestParam?name=dudu">RequestParam</a>
  • 其他属性
    1. required = false ( 默认为true,表示该参数一定要传,否则无法请求 )

RequestBody

  • 作用
    用于获取请求体内容(get请求方式没有请求体,所以不适用)
  • 应用
@RequestMapping("/requestBody")
public String testRequestBody(@RequestBody String body) {
    System.out.println("请求体:" + body);
    return "success";
}
<form action="anno/requestBody" method="post">
    姓名:<input type="text" name="name"/> <br>
    年龄:<input type="text" name="age"/> <br>
    <input type="submit" value="提交">
</form>

PathVariable

  • 作用
    绑定url中的占位符,名称要与name属性值一致
  • 应用
@RequestMapping("/pathVariable/{sid}")
public String testPathVariable(@PathVariable(name = "sid") String id) {
    System.out.println(id);
    return "success";
}
<a href="anno/pathVariable/1208">PathVariable</a>

RequestHeader

  • 作用
    获取请求头的值
  • 应用
@RequestMapping("/requestHeader")
//value的值是请求头中的key值
public String testRequestHeader(@RequestHeader(value = "Accept") String header) {
    System.out.println(header);
    return "success";
}
<a href="anno/requestHeader">RequestHeader</a>

CookieValue

  • 作用
    获取cookie的值
  • 应用
@RequestMapping("/cookieValue")
//value属性的值是cookie的key值
public String testCookieValue(@CookieValue(value = "JSESSIONID") String cookie) {
    System.out.println(cookie);
    return "success";
}
<a href="anno/cookieValue">CookieValue</a>

ModelAttribute

  • 作用
    用于方法上,该方法会先执行,后执行的方法可以接收该方法的返回值,测试的结果显示是按照类型来接收,与返回值名称无关
  • 应用1:作用于方法上
@RequestMapping("/modelAttribute")
public String testModelAttribute(User user) {
    System.out.println(user);
    return "success";
}
@ModelAttribute
public User show(String name, Integer age) {
    System.out.println("show_User方法执行了……");
    User user = new User(name, age, new Date());
    return user;
}
<form action="anno/modelAttribute" method="post">
    姓名:<input type="text" name="name"/> <br>
    年龄:<input type="text" name="age"/> <br>
    <input type="submit" value="提交">
</form>
  • 应用2:作用于参数上
@RequestMapping("/modelAttribute")
//取出show中的du对应的user
public String testModelAttribute(@ModelAttribute("du") User user) {
    System.out.println(user);
    return "success";
}
@ModelAttribute
public void show(Map<String, User> map) {
    System.out.println("show_void方法执行了……");
    //程序会自动将表单中的数据封装进来
    User user = new User();
    map.put("du", user);
}
<form action="anno/modelAttribute" method="post">
    姓名:<input type="text" name="name"/> <br>
    年龄:<input type="text" name="age"/> <br>
    <input type="submit" value="提交">
</form>

SessionAttributes

  • 作用
    将数据存入session域对象中
  • 应用
@SessionAttributes(value = {"du"})//将du=费渡存入到session域对象中了
public class AnnotationController implements Serializable {
    @RequestMapping("/sessionAttributes")
    public String testSessionAttributes(Model model) {
        model.addAttribute("du", "费渡");//将数据存入request域对象中
        return "success";
    }
}
<a href="anno/sessionAttributes">SessionAttributes</a>

ModelMap类

  • 作用
    获取session域中的数据
  • 应用
@RequestMapping("/getSessionAttributes")
public String getSessionAttributes(ModelMap modelMap) {
    //取出上一个例子中存入的数据
    System.out.println(modelMap.get("du"));
    return "success";
}
<a href="anno/getSessionAttributes">getSessionAttributes</a>

SessionStatus类

  • 作用
    清空session域的数据
  • 应用
@RequestMapping("/deleteSessionAttributes")
public String deleteSessionAttributes(SessionStatus status) {
    //清空前面例子中存入的数据
    status.setComplete();
    return "success";
}
<a href="anno/deleteSessionAttributes">deleteSessionAttributes</a>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值