springmvc获取请求参数的六种方法

1、直接将表单的参数作为Controller方法参数

    @RequestMapping("/test1.do")
    public String test1(String id,String password) {
        System.out.println("id:"+id);
        System.out.println("password:"+password);
        return "demo";
    }

注:访问url为:http://localhost:8080/SpringMVC/demo/test1.do?id=111&password=123
提交的参数需要和Controller方法中的参数名称一致。

2、通过HttpServletRequest对象接收

  @RequestMapping("/test2.do")
    public String test2(HttpServletRequest request) {
        String name=request.getParameter("id");
        String password=request.getParameter("password");
        System.out.println("id:"+id);
        System.out.println("password:"+password);
        return "demo";
    }

注:前台提交表单数据的对应表单”name”属性值必须为id和password,否则无法接收对应数据

3、通过一个javabean来接收
(1)建立一个javabean,要求属性名与请求参数名(name属性)一致,并提供get/set方法

package demo;

public class User{
    private String id;
    private String password;

    public String getId() {
        return id;
    }
    public void setId(String id) {
        this.id = id;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }  
}

(2)将该javabean作为方法参数传入

    @RequestMapping("/test3.do")
    public String test3(User user) {
        System.out.println("id:"+user.getId());
        System.out.println("password:"+user.getPassword());
        return "demo";
    }

4、用注解@RequestParam

DispatcherServlet在调用Controller方法前,会先利用java的反射机制分析方法结构,此时,会调用request.getParameter()方法获得参数值,然后赋给对应的形参。
若此时形参与请求参数名称不一样,可以使用@RequestParam注解

RequestParam注解有三个参数
- - value:表示请求参数的参数名
- - required:表示该参数是否必须,默认true
- - defaultValue:请求参数的默认值

@RequestMapping("/test4.do")
    public String addUser6(String id,@RequestParam("pwd") String password) {
        System.out.println("id:"+id);
        System.out.println("password is:"+password);
        return "demo";
    }

注:其中”pwd”是前台提交过来的请求参数

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

@RequestMapping(value="/test5/{id}/{password}",method=RequestMethod.GET)
public String tes5(@PathVariable String id,@PathVariable String password) {
        System.out.println("id:"+id);
        System.out.println("password:"+password);
        return "demo";
    }

例如,访问http://localhost:8080/SpringMVC/demo/111/123 路径时,则自动将URL中模板变量{id}和{password}绑定到被@PathVariable注解的同名参数上,即参数id=111,password=123。

6、使用@ModelAttribute注解获取POST请求的FORM表单数据
使用该注解的参数值将由model中取得。如果model中找不到,那么该参数会先被实例化,然后被添加到model中。在model中存在以后,请求中所有名称匹配的参数都会填充到该参数中。
(1)Jsp表单:

<form action ="SpringMVC/demo/test6.do" method="post"> 
     账号:<input type="text" name="id"/><br/>
     密码:<input type="password" name="password"/><br/>
     <input type="submit" value="提交"/> 
</form> 

(2)建立一个javabean,封装参数

package demo;

public class User{
    private String id;
    private String password;

    public String getId() {
        return id;
    }
    public void setId(String id) {
        this.id = id;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }  
}

(3)Java Controller中使用@ModelAttribute注解:

@RequestMapping("/test6.do")
    public String test6(@ModelAttribute("user") User user) {
        System.out.println("id:"+user.getId());
        System.out.println("password:"+user.getPassword());
        return "demo";
    }

注:其中表单中的name字段需要和javabean的属性字段一致

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值