Spring Boot获取参数的几种方式

直接把表单的参数写在Controller相应的方法的形参中

直接把表单的参数写在Controller相应的方法的形参中,适用于get方式提交,不适用于post方式提交

1
2
3
4
5
6
7
8
9
10
11
12
/**
* 直接把表单的参数写在Controller相应的方法的形参中
* @param username
* @param password
* @return
*/
@RequestMapping("/addUser1")
public String addUser1(String username, String password) {
System.out.println("username is: " + username);
System.out.println("password is: " + password);
return "demo/index";
}

Url形式:http://localhost/AppBlog/demo/addUser1?username=appblog&password=888888,提交的参数需要和Controller方法中的入参名称一致

通过HttpServletRequest接收

通过HttpServletRequest接收,post方式和get方式都可以

1
2
3
4
5
6
7
8
9
10
11
12
13
/**
* 通过HttpServletRequest接收
* @param request
* @return
*/
@RequestMapping("/addUser2")
public String addUser2(HttpServletRequest request) {
String username=request.getParameter("username");
String password=request.getParameter("password");
System.out.println("username is: " + username);
System.out.println("password is: " + password);
return "demo/index";
}

通过一个bean来接收

通过一个bean来接收,post方式和get方式都可以

1
2
3
4
5
6
7
8
9
10
11
/**
* 通过一个bean来接收
* @param user
* @return
*/
@RequestMapping("/addUser3")
public String addUser3(UserModel user) {
System.out.println("username is: " + user.getUsername());
System.out.println("password is: " + user.getPassword());
return "demo/index";
}

通过@PathVariable获取路径中的参数

1
2
3
4
5
6
7
8
9
10
11
12
/**
* 通过@PathVariable获取路径中的参数
* @param username
* @param password
* @return
*/
@RequestMapping(value="/addUser4/{username}/{password}", method=RequestMethod.GET)
public String addUser4(@PathVariable String username, @PathVariable String password) {
System.out.println("username is: " + username);
System.out.println("password is: " + password);
return "demo/index";
}

访问:http://localhost/AppBlog/demo/addUser4/appblog/888888路径时,则自动将URL中模板变量{username}{password}绑定到通过@PathVariable注解的同名参数上,即入参后username=appblog、password=888888

使用@ModelAttribute注解获取POST请求的FORM表单数据

1
2
3
4
5
6
7
<!--jsp页面-->
<form action ="<%=request.getContextPath()%>/demo/addUser5" method="post">
用户名:&nbsp;<input type="text" name="username"/><br/>
密&nbsp;&nbsp;码:&nbsp;<input type="password" name="password"/><br/>
<input type="submit" value="提交"/>
<input type="reset" value="重置"/>
</form>
1
2
3
4
5
6
7
8
9
10
11
/**
* 使用@ModelAttribute注解获取POST请求的FORM表单数据
* @param user
* @return
*/
@RequestMapping(value="/addUser5", method=RequestMethod.POST)
public String addUser5(@ModelAttribute("user") UserModel user) {
System.out.println("username is: " + user.getUsername());
System.out.println("password is: " + user.getPassword());
return "demo/index";
}

用注解@RequestParam绑定请求参数到方法入参

当请求参数username不存在时会有异常发生,可以通过设置属性required=false解决

例如: @RequestParam(value="username", required=false)

Powered by AppBlog.CN     浙ICP备14037229号

Copyright © 2012 - 2020 APP开发技术博客 All Rights Reserved.

访客数 : | 访问量 :