Spring MVC框架——常用注解

  • @RequestMapping  

    Spring MVC 通过 @RequestMapping 注解将请求与业务方法进行映射,在方法定义处,在类定义都可以添加该注解。

    常用参数:

      1、value:指定请求的实际地址,@RequestMapping的默认值;

      2、method:指定请求的类型,GET、POST、PUT、DELETE等;

      3、params:指定请求必须包含的参数;

  • @RequestMapping

    参数绑定:

      1、在业务方法定义时声明参数列表;

      2、给参数添加@RequestParam注解;   

        传统风格
          http://localhost:7777/hello/index?id=10&name=a
@RequestMapping(value = "/index",method = RequestMethod.GET,params = {"id=10","name"})
public String index(@RequestParam("id") int num,@RequestParam("name") String gender){
  System.out.println(num);
  System.out.println(gender);
  return "index";
}
          params = {"id=10","name"}
            指定参数值,参数id必须传10;
          @RequestParam("id") int num,@RequestParam("name") String gender
            传递的参数名与接收参数名不同时,使用@RequestParam绑定;

  • @PathVariable
    RESTful风格
      http://localhost:7777/hello/rest/10/a
@RequestMapping("/rest/{id}/{name}")
public String rest(@PathVariable("id") int id,@PathVariable("name") String name){
  System.out.println("rest");
  System.out.println(id);
  System.out.println(name);
  return "index";
}

    使用@PathVariable("id") int id, @PathVariable("name") String name绑定参数

  • @CookieValue
    映射Cookie
@RequestMapping("/cookie")
public String cookie(@CookieValue("JSESSIONID") String sessionId){
  System.out.println(sessionId);
  return "index";
}
  • 使用POJO绑定参数
package com.sunjian.entity;

/**
 * @author sunjian
 * @date 2020/3/17 14:25
 */
public class User {
    private Integer id;
    private String name;
    private Integer age;
    private Address address;

    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", age=" + age +
                ", address=" + address +
                '}';
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    public Address getAddress() {
        return address;
    }

    public void setAddress(Address address) {
        this.address = address;
    }
}
package com.sunjian.entity;

/**
 * @author sunjian
 * @date 2020/3/17 14:26
 */
public class Address {
    private Integer id;
    private String name;

    @Override
    public String toString() {
        return "Address{" +
                "id=" + id +
                ", name='" + name + '\'' +
                '}';
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}
package com.sunjian.controller;

import com.sunjian.entity.User;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

/**
 * @author sunjian
 * @date 2020/3/17 14:28
 */
@Controller
@RequestMapping(value = "/user")
public class UserHandler {
    @RequestMapping(value = "/add")
    public String add(User user){
        System.out.println(user);
        return "index";
    }
}
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
<form action="/user/add" method="post">
    ID:<input type="text" name="id"/><br/>
    姓名:<input type="text" name="name"/><br/>
    年龄:<input type="text" name="age"/><br/>
    地址ID:<input type="text" name="address.id"/><br/>
    地址名:<input type="text" name="address.name"/><br/>
    <input type="submit" value="提交"/>
</form>
</body>
</html>

访问http://localhost:7777/add.jsp,输入人员信息后,点击提交按钮,打印结果

User{id=123, name='张三', age=31, address=Address{id=1234, name='12345'}}





 

OK. 

猜你喜欢

转载自www.cnblogs.com/zuichao123/p/12510616.html