Spring Boot获取参数的几种方式
直接把表单的参数写在Controller相应的方法的形参中
直接把表单的参数写在Controller相应的方法的形参中,适用于get方式提交,不适用于post方式提交
/**
* 直接把表单的参数写在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方式都可以
/**
* 通过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方式都可以
/**
* 通过一个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
获取路径中的参数
/**
* 通过@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表单数据
<!--jsp页面-->
<form action ="<%=request.getContextPath()%>/demo/addUser5" method="post">
用户名: <input type="text" name="username"/><br/>
密 码: <input type="password" name="password"/><br/>
<input type="submit" value="提交"/>
<input type="reset" value="重置"/>
</form>
/**
* 使用@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)
版权声明:
作者:Joe.Ye
链接:https://www.appblog.cn/index.php/2023/02/26/several-ways-to-obtain-parameters-in-spring-boot/
来源:APP全栈技术分享
文章版权归作者所有,未经允许请勿转载。
共有 0 条评论