当前位置: 移动技术网 > IT编程>开发语言>Java > springboot获取URL请求参数的多种方式

springboot获取URL请求参数的多种方式

2019年07月19日  | 移动技术网IT编程  | 我要评论

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

 /**
   * 1.直接把表单的参数写在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形式: 提交的参数需要和controller方法中的入参名称一致。

2、通过httpservletrequest接收,post方式和get方式都可以。

  /**
   * 2、通过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";
  }

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

(1)建立一个和表单中参数对应的bean

package demo.model;
public class usermodel {
  private string username;
  private string password;
  public string getusername() {
    return username;
  }
  public void setusername(string username) {
    this.username = username;
  }
  public string getpassword() {
    return password;
  }
  public void setpassword(string password) {
    this.password = password;
  }
}

(2)用这个bean来封装接收的参数

/**
   * 3、通过一个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";
  }

4、通过@pathvariable获取路径中的参数

 /**
   * 4、通过@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";
  }

例如,访问 路径时,则自动将url中模板变量{username}和{password}绑定到通过@pathvariable注解的同名参数上,即入参后username=lixiaoxi、password=111111。

5、使用@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>

java controller如下:

  /**
   * 5、使用@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";
  }

6、用注解@requestparam绑定请求参数到方法入参

当请求参数username不存在时会有异常发生,可以通过设置属性required=false解决,例如: @requestparam(value="username", required=false)

 /**
   * 6、用注解@requestparam绑定请求参数到方法入参
   * @param username
   * @param password
   * @return
   */
  @requestmapping(value="/adduser6",method=requestmethod.get)
  public string adduser6(@requestparam("username") string username,@requestparam("password") string password) {
    system.out.println("username is:"+username);
    system.out.println("password is:"+password);
    return "demo/index";
  }

总结

以上所述是小编给大家介绍的springboot获取url请求参数的多种方式,希望对大家有所帮助

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网