当前位置: 移动技术网 > IT编程>开发语言>Java > Java Spring Controller 获取请求参数的几种方法详解

Java Spring Controller 获取请求参数的几种方法详解

2019年07月22日  | 移动技术网IT编程  | 我要评论
java spring controller 获取请求参数的几种方法  1、直接把表单的参数写在controller相应的方法的形参中,适用于get方式提交,不

java spring controller 获取请求参数的几种方法

 1、直接把表单的参数写在controller相应的方法的形参中,适用于get方式提交,不适用于post方式提交。若"content-type"="application/x-www-form-urlencoded",可用post提交

       url形式:http://localhost:8080/ssmdemo/demo/adduser1?username=lixiaoxi&password=111111 提交的参数需要和controller方法中的入参名称一致。  

 /**
   * 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";
  }

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方式都可以。

  /**
   * 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、使用@modelattribute注解获取post请求的form表单数据  

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

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

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

@requestparam(value="username", required=false)
  **** 若"content-type"="application/x-www-form-urlencoded",post get都可以
  **** 若"content-type"="application/application/json",只适用get
   /**
   * 5、用注解@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";
  }

6、用request.getquerystring() 获取spring mvc get请求的参数,只适用get请求

  @requestmapping(value="/adduser6",method=requestmethod.get)
  public string adduser6(httpservletrequest request) { 
    system.out.println("username is:"+request.getquerystring()); 
    return "demo/index"; 
  }

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

如您对本文有疑问或者有任何想说的,请 点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网