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全栈技术分享
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
打赏
海报
Spring Boot获取参数的几种方式
直接把表单的参数写在Controller相应的方法的形参中 直接把表单的参数写在Controller相应的方法的形参中,适用于get方式提交,不适用于post方式提交 /** * ……
<<上一篇
下一篇>>
文章目录
关闭
目 录