将表单中的值封装成JavaBean对象的疑惑

将表单中的值封装成JavaBean对象的疑惑

老师,在本节视频介绍了用注解方式实现SpringMVC开发的小案例,这里是通过一个表单,表单填写好后直接发送请求到指定路径的后台,在这个路径对应的Handler处理中,发现直接把表单的数据当成封装好的对象来使用了,请问这么做的原理是什么?

在学SpringMVC之前,在Servlet中,我们都是把表单请求到的数据手动封装到一个JavaBean对象中的,为什么之前不可以直接把表单数据当成一个封装好的JavaBean对象直接使用么?

相关代码如图:

表单

<form class="form-horizontal" role="form" action="addGoods" method="post">
    <div class="form-group">
        <label class="col-sm-1 control-label">名称</label>
        <div class="col-sm-3">
            <input type="text" class="form-control" name="name" placeholder="请输入商品名称">
        </div>
    </div>
    <div class="form-group">
        <label class="col-sm-1 control-label">价格</label>
        <div class="col-sm-3">
            <input type="text" class="form-control" name="price" placeholder="请输入商品价格">
        </div>
    </div>
    <div class="form-group">
        <div class="col-sm-offset-1 col-sm-3">
            <button type="submit" class="btn btn-default">提交</button>
        </div>
    </div>
</form>

表单处理:

/**
 * 添加商品并展示
 */
@RequestMapping("/addGoods")
public ModelAndView addGoods(Goods goods){
   System.out.println(goods.getName()+"---"+goods.getPrice());
   ModelAndView modelAndView=new ModelAndView();
   modelAndView.addObject("goods",goods);
   modelAndView.setViewName("show");
   return modelAndView;
}


正在回答

登陆购买课程后可参与讨论,去登陆

1回答

你好!这个把表单数据自动封装成JavaBean,可以说是SpringMVC的便捷之处,它的底层将这些操作都做了,为开发提供了方便。而之前的Servlet是没有这个功能的,需要我们自己完成。

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

  • 哆丶哆 提问者 #1
    那如果出现了表单数据的name属性值和JavaBean中的属性名不同的情况,或者表单数据的个数和JavaBean中的数据个数不一的话还会这样么?
    2019-07-28 14:35:26
  • 好帮手慕珊 回复 提问者 哆丶哆 #2
    你好!表单数据个数可以和JavaBean不一样,但是名称要一致。祝学习愉快!
    2019-07-28 16:08:46
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师