zoukankan      html  css  js  c++  java
  • SpringMVC数据绑定

    在你使用springMVC的数据绑定的时候,你没有想过,没有使用数据绑定前端如何向后端传入数据,
    这样和使用springMVC数据绑定之间的区别,数据绑定的实质是什么。
    (数据绑定是为了方便前后端数据传递)

      《一》   前端传入参数(最初始的方法)

    // url   http://locahost:8080/main?id = 1
    // 后端controller
    @requesetMapping(value = "/main")
    publc int main(){
      int id = request.getparameter("id");
      return id;
    }
    // 原来表单提交的时候,url显示的就是
    http://locahost:8080/main?name = 1 &?age = 23 &?address = "jdsjf"
    所以数据的绑定和原来学表单的提交密切相关,但是前后端数据之间的交互有很多,比如使用ajax

          

       最初始的时候,没有参数绑定,自己手动将存入在request域里面的参数,手动取出来,然后在执行下一步操作。(例如表单提交时候,后端在request里面一个一个将表单中元素的数值取出来)

       问题:如果在前端传入参数很多的时候,如何将这些参数,方便快捷的取出来?

     那么使用springMVC数据绑定可以解决上面问题吗?

    // 使用springmvc处理原始问题
    // url http://locahost:8080/main?id = 1
    @requestMapping(value = /main")
    public int main(int id){
      return id;  
    }

      通过上述代码发现,使用springmvc数据绑定,只需要将controll方法体中的参数和url中绑定的参数名相同即可,不需要向之前从request域中取出数据。

         下面将从工作原理以及简单数据绑定,复杂数据绑定介绍springMVC数据绑定

    一. 工作原理

                                                 

        注意:从上面的servletrequest验证数据是存储在servlet request 内置对象中

        核心部件:Databinder接口

        绑定过程如下:

     ( 1 ) Spring MVC ServletRequest 对象传递给 DataBinder
     ( 2 )将处理方法的入参对象传递给 DataBinder
     ( 3 ) DataBinder 调用 ConversionService 组件进行数据类型转换、数据格式化等工作,并将ServletRequest 对象中的消           息填充到参数对象中
    (4 )调用 Validator 组件对已经绑定了请求消息数据的参数对象进行数据合法性校验
    (5 )校验完成后会生成数据绑定结果 BindingResult 对象, Spring MVC 会将 BindingResult
          对象中的内容赋给处理方法的相应参数 
     

     2019-8-24 :

        今天看视频的视频的时候看到一种数据绑定方式:

    前端页面中有

                        <form>

                                 <input name = "username"  preholder = "用户名">  

                                 <input name = "password" preholder = "密码">

                       </form>

    后端方法里面直接写

                     public String login(@RequestParam(value = "username) String username,

                                                     @RequestParam(value = "password) String password)

    向上面这样不是从request域中取出 form表单中的元素,而是通过使用注解的方式来制定获取,第一次见

    但是这种方式,好像在之前的数据中接口和映射文件之间的对应关系中使用过这个。

    未完待续!!!!!!!!!!!!!!!!

  • 相关阅读:
    UVA 1386 Cellular Automaton
    ZOJ 3331 Process the Tasks
    CodeForces 650B Image Preview
    CodeForces 650A Watchmen
    CodeForces 651B Beautiful Paintings
    CodeForces 651A Joysticks
    HUST 1601 Shepherd
    HUST 1602 Substring
    HUST 1600 Lucky Numbers
    POJ 3991 Seinfeld
  • 原文地址:https://www.cnblogs.com/helloqiufei/p/11066892.html
Copyright © 2011-2022 走看看