SpringMVC---数据绑定

1.什么是数据绑定

SpringMVC里面,所谓的数据绑定就是将请求带过来的表单数据绑定到执行方法的参数变量.

方式一.方法形参和前台参数同名

解决方案:在请求方法形参上,声明和表单字段名相同的参数名(可以自动同名匹配,然后进行封装)
<fieldset>
    <legend>方法形参与前台参数同名</legend>
    <form action="${pageContext.request.contextPath}/request/method2" method="post">
        账号: <input name="username"><br>
        年龄: <input name="age"><br>
        <button type="submit">提交</button>
    </form>
</fieldset>
  //方法名和参数相同
    @RequestMapping(value = "/method2")
    public String method2(String username,String age){
        System.out.println(username);
        System.out.println(age);

        return "/login.jsp";

    }

方式二.方法形参和前台参数不同名

解决方案:使用 @RequestParam(“前台表单对应的名”)
<fieldset>
    <legend>方法形参与前台参数不同名</legend>
    <form action="${pageContext.request.contextPath}/request/method3" method="post">
        账号: <input name="name"><br>
        年龄: <input name="age"><br>
        <button type="submit">提交</button>
    </form>
</fieldset>
  //解决方案使用 : @RequestParam("前台表单对应的名")
    @RequestMapping(value = "/method3")
    public String method3(@RequestParam("name") String username, String age){
        System.out.println(username);
        System.out.println(age);

        return "/login.jsp";

    }

方式三.接收数组,如爱好

解决方案:直接在方法参数上声明数组
<fieldset>
    <legend>接收数组或集合</legend>
    <form action="${pageContext.request.contextPath}/request/method4" method="post">
        账号: <input name="name"><br>
        年龄: <input name="age"><br>
        爱好: <input type="checkbox" name="hobbys" value="java">java
        <input type="checkbox" name="hobbys" value="html">html<br>
        <button type="submit">提交</button>
    </form>
</fieldset>
   @RequestMapping(value = "/method4")
    public String method4(String[] hobbys,@RequestParam("name") String username, String age){
        System.out.println(Arrays.toString(hobbys));
        System.out.println(username);
        System.out.println(age);

        return "/login.jsp";

    }

方式四.对象传参

解决方案:后台并不能直接接受集合参数,需要将集合设置到对应的JavaBean中,通过JavaBean接受集合参数
<fieldset>
    <legend>接受对象,表单参数名必须和后台pojo对象对应的属性名相同</legend>
    <form action="${pageContext.request.contextPath}/request/method5" method="get">
        账号: <input name="username"><br>
        密码: <input type="password" name="password"><br>
        邮箱: <input name="email"><br>
        电话: <input name="phone"><br>
        爱好:<input type="checkbox" name="hobby" value="java">java
        <input type="checkbox" name="hobby" value="C">C
        <input type="checkbox" name="hobby" value="C++">C++<br/>
        <button type="submit">提交</button>
    </form>
</fieldset>
   @RequestMapping(value = "/method5")
    public String method5(User user){
        System.out.println(user);

        return "/login.jsp";

    }

方式五.接受参数封装成Map集合

解决方案:在方法参数前加上@RequestParam,并传入map

注意:一定记得加上参数@RequestParam

<fieldset>
    <legend>接受参数封装成Map集合</legend>
    <form action="${pageContext.request.contextPath}/request/method6" method="post">
        账号: <input name="username"><br>
        密码: <input name="password"><br>
        邮箱: <input name="email"><br>
        电话: <input name="phone"><br>
        <button type="submit">提交</button>
    </form>
</fieldset>
    @RequestMapping(value = "/method6")
    public String method6(@RequestParam Map<String,Object> map){
        for (String s : map.keySet()) {
            System.out.println(s+"="+map.get(s));
        }

        return "/login.jsp";

    }
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值