Springboot获取前端传递页面的几种方式
前期准备(设置实体类)
public class User {
private String username;
private String password;
private Cat cat;
private List<Course>courses;
}
public class Cat {
private String breed;
private String name;
}
public class Course {
private String name;
private String teacher;
}
方式一:指定前端url请求参数名和方法参数名一致
直接可以将控制层的方法的参数名称和请求的参数名称保持一致来进行接收
@RequestMapping("add1")
public String add1(String username,String password)
{
System.out.println("username="+username);
System.out.println("password="+password);
return "success";
}
方法二:创建实体类对象作为参数的列表
如果前端的数据量比较多,可以使用实体类类型作为参数的列表
//前端所提交的参数的名称需要和类的属性名称保持一致
@RequestMapping("add2")
public String add2(User user)
{
System.out.println(user);
return "success";
}
方法三:Restful风格的数据交互
RestFul风格的数据提交,需要使用{变量名称}语法用以声明RestFul的参数列表,通过一个注解@PathVariable 指定参数的映射规则
//接收Restful风格的数据,允许变量占位符
@RequestMapping("add3/{username}/{password}")
public String add3(@PathVariable("username") String username, @PathVariable String password)
{
System.out.println("username="+username);
System.out.println("password="+password);
return "success";
}
方法四:HttpServeltRequest对象接收数据
使用HttpServeltRequest对象来接收数据(key==value的形式来传输)
@RequestMapping("add4")
public String add4(HttpServletRequest request)
{
//request中的数据是以key-value的键值对形式存储
//key 代表前端的参数名称
String username=request.getParameter("username");
String password=request.getParameter("password");
System.out.println("username="+username);
System.out.println("password="+password);
return "success";
}
方法五:利用json数据进行数据参数
.将前端传递过来的JSON数据可以直接存储在pojo对象中。将数据存储在请求的实体中,获取数据的时候需要指定从请求的实体中获取,需要使用@RequestBody注解进行标记
@RequestMapping("add5")
public User add5(@RequestBody User user)
{
System.out.println(user);
return user;
}
@RequestMapping("add6")
public User add6(@RequestBody User user)
{
System.out.println(user);
return user;
}
@RequestMapping("add7")
public User add7(@RequestBody User user)
{
System.out.println(user);
return user;
}
方法6:实体类中定义有引用数据类型
如果一个实体类中定义有引用数据类型,在传递数据的时候,使用{}的形式来进行提交。需要使用@RequestBody注解进行标记
方法7:实体类中定义有List集合数据
如果一个实体类中定义有List集合数据的类型,前端需更改数据传输格式
方法8:使用Map集合接收前端数据
@RequestMapping("add8")
public String add8(@RequestBody Map<String,String>map)
{
String username=map.get("username");
String password=map.get("password");
System.out.println("username="+username);
System.out.println("password="+password);
return "success";
}