• ASP Action函数 如何接收client传递的数据(编辑中。。。)


    参看链接:https://www.cnblogs.com/umlzhang/p/3654486.html

    我这里总结一下,Action的参数的来源比较多

    1.url

    2.路由设定

    3.post中的内容被自动映射(form格式,json格式都可以)

     如果参数的类型是可为空类型,那么当不传递这个参数时,也能正确执行函数。但是,如果是int 这种,不能为空的类型,就会出现调用错误。这时候,需要使用int ? 类型。

    对于post 请求 ,action 的参数自动映射与 request 的content-type 密切相关, 但是无论哪种post请求,request的InputStream属性一定保存着post过来的数据。 

    例子1:

    post 一个 content-type 为 application/json 的json到服务器端,json内容如下:

    {"name":"aaaa","Meetings":"1","ImageBase64":"BBBCCCCC"}

    服务器结果如下:

     可以看到,json中的key都被映射到了同名变量或属性中。hcpDto的 Name  和 name 的值,都来自json中的name,忽略大小写区别。可以简单地理解成,只要名称和类型允许,就会进行相应的映射。

    但是用在request 的 form属性和 params属性中,没有出现相应的值,参见下图

    例子1.2,如果post一个复杂的json对象

    {"HCPInsertDto":{"name":"aaaa","Meetings":"1"},"ImageBase64":"BBBCCCCC"}

    结果如下图:

     name的值无法取到,也就是说,默认是无法解析json中第二层的属性。那么为什么有的框架可以做到多层json的解析呢?????????????????????

    例子2:

    post 一个 content-type 为 application/x-www-form-urlencoded的数据到服务器,数据内容如下:

    name=aaa&imagebase64=bbbbbbbb

     服务器截图如下:

    同时可以注意到,以 application/x-www-form-urlencoded 形式提交的数据,可以在request对象中的 form属性和params属性中都有值:

    例子3

    post 一个 content-type 为 multipart/form-data 的

    首先,这个post的data格式,和 content-type的内容有些特殊,最好使用一个form表单构建,再粘贴到 restful client 里实验,截图如下:

    结果如下:

    可以看到,参数可以正确映射

     

     例子4 在一些ios之类的前台库里,可以传递一个数组,我用restful client模拟了一下这种情况

     代码如下:

    ------WebKitFormBoundaryTmMzofe8Ic12TbyA
    Content-Disposition:form-data;name="attendees[]"
    
    aaaa
    ------WebKitFormBoundaryTmMzofe8Ic12TbyA
    Content-Disposition:form-data;name="attendees[]"
    
    bbbb
    ------WebKitFormBoundaryTmMzofe8Ic12TbyA--

    多次传递同样的name属性,后台就会把这些数据处理为一个数组。注意,这里的[] 符号可以省略,server同样可以解析。

    解析结果如下:

  • 相关阅读:
    spring mvc: 页面重定向调整
    spring mvc: 静态资源/文件配置
    spring:设置映射访问路径 或 xml配置访问路径 (spring mvc form表单)
    Spring mvc使用不了jstl 或者 Spring mvc不解析jstl
    spring3: 对JDBC的支持 之 Spring提供的其它帮助 SimpleJdbcInsert/SimpleJdbcCall/SqlUpdate/JdbcTemplate 生成主键/批量处理
    spring3: 对JDBC的支持 之 关系数据库操作对象化
    基于python+Testlink+Jenkins实现的接口自动化测试框架V3.0
    python的赋值,深拷贝和浅拷贝的区别
    Locust性能测试
    SpringAOP的注解方式
  • 原文地址:https://www.cnblogs.com/breezemist/p/9112442.html
Copyright © 2020-2023  润新知