精华内容
下载资源
问答
  • 文章目录Mybaits映射文件配置之获取属性对象属性参数(参数对象嵌套) Mybaits映射文件配置之获取属性对象属性参数(参数对象嵌套) ​ 如果参数是一个对象,该对象的属性也是一个对象,如果要获取这个属性对象的属性;...

    Mybaits映射文件配置之获取属性对象属性参数(参数对象嵌套)

    ​ 如果参数是一个对象,该对象的属性也是一个对象,如果要获取这个属性对象的属性;属性名.属性名就可以获取了。

    展开全文
  • 最近在研究WebApi,在实际的工作中遇到了一个问题:在将参数对象MSG2的实例通过Post至服务器端的时候, public static string SetMessageOperationResult(MSG2 model) { string result = string.Empty; if ...

    最近在研究WebApi,在实际的工作中遇到了一个问题:在将参数对象MSG2的实例通过Post至服务器端的时候,

     public static string SetMessageOperationResult(MSG2 model)
            {
                string result = string.Empty;
                if (model == null) return result;          
                Hashtable ht = new Hashtable();         
                ht.Add("Authorization", string.Format("Bearer {0}", _accToken));             
    
                var content = JsonConvert.SerializeObject(model);          
                string url = string.Format("{0}{1}", _baseUrl, _setMessageOperationResult);
                result = HttpHelper.PostData(content, url, _timeout, ht);
                return result;
            }
    服务器端接收到的参数实例化结果总是为空:

    <pre name="code" class="csharp"> [HttpPost]
            public async Task<MSG2ReturnModels> SetMessageOperationResult(MSG2 MSG2)
            {
             if(MSG2 == null) //一直成立


    
    我一遍又一遍的检查代码,尝试着各种解决办法,包括[FromBody] \ [FromURL] ,各问题依旧。。。。。。
    

    一直到了下午,吃过了午饭,在小伙伴的一次次帮助下,最终我发现了问题的所在:

     public static string SetMessageOperationResult(MSG2 model)
            {
                string result = string.Empty;
                if (model == null) return result;          
                Hashtable ht = new Hashtable();         
                ht.Add("Authorization", string.Format("Bearer {0}", _accToken));             
    
                var content = JsonConvert.SerializeObject(model);          
                string url = string.Format("{0}{1}", _baseUrl, _setMessageOperationResult);
                result = HttpHelper.PostData(content, url, _timeout, ht, <strong style="background-color: rgb(255, 0, 0);">"application/json", "text/json"</strong>);
                return result;
            }
    如果红色的两个参数不传,我的方法默认这两个参数的值为:"application/x-www-form-urlencoded"  和   "application/json",则服务器端将会获取不到客户端传递过来的值


    如果按照红色的值进行传递,那么服务器端参数对象就会接收到下图的说要传递的值,


       public static string PostData(string request, string url, int timeout, Hashtable ht, string reqType = "application/x-www-form-urlencoded", string resType = "application/json")
            {
    
                string responseString = string.Empty;
                HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(url);
                webRequest.ContentType = reqType;// + ";charset=\"utf-8\""
                webRequest.Accept = resType;// resType;
    
                webRequest.Method = "POST";
                webRequest.Timeout = timeout * 1000;
    
    
                try
                {
    
    
                    foreach (DictionaryEntry de in ht)
                    {
                        webRequest.Headers.Add(de.Key.ToString(), de.Value.ToString());
                    }
                    byte[] bytes = Encoding.GetEncoding("utf-8").GetBytes(request);
                    webRequest.ContentLength = bytes.Length;
                    webRequest.GetRequestStream().Write(bytes, 0, bytes.Length);
                    HttpWebResponse response;//= (HttpWebResponse)webRequest.GetResponse();
                    try
                    {
                        response = (HttpWebResponse)webRequest.GetResponse();
                    }
                    catch (WebException ex)
                    {
    
                        response = (HttpWebResponse)ex.Response;
                        using (StreamReader reader = new StreamReader(response.GetResponseStream(), System.Text.Encoding.GetEncoding("utf-8")))
                        {
                            responseString = reader.ReadToEnd();
                        }
                        throw new Exception(responseString);
                    }
    
    
                    using (StreamReader reader = new StreamReader(response.GetResponseStream(), System.Text.Encoding.GetEncoding("utf-8")))
                    {
                        responseString = reader.ReadToEnd();
                    }
    
                    return responseString;
                }
    
                catch (Exception ex)
                {
    
                    throw new Exception(ex.Message);
                }
            }
    




    展开全文
  • React 定义组件的参数对象

    万次阅读 2016-09-09 17:02:04
    使用React.createClass()方法创建组件时,需要传入一个参数对象,React会根据这个对象创建组件。这个参数对象中,除了包含必须要实现的render方法外,还有一些组件的设置属性。组件生命周期中的一些处理函数,也是在...

    原文地址:http://itbilu.com/javascript/react/4JIk-Q7Yl.html

    使用React.createClass()方法创建组件时,需要传入一个参数对象,React会根据这个对象创建组件。这个参数对象中,除了包含必须要实现的render方法外,还有一些组件的设置属性。组件生命周期中的一些处理函数,也是在这个对象中定义的。


    1. 组件的定义
    2. 定义组件的参数
    3. 定义组件的参数-生命周期


    1. 组件的定义

    我们在之前介绍过,定义一个组件,语法结构如下:

    ReactClass createClass(object specification)

    定义组件时,传了一个表示参数说明(参数规格)的specification对象。

    如,定义一个组件:

    var App = React.createClass({
      displayName: 'App',
      render: function () {
        return (
          <h1>itbilu.com</h1>
        )
      }
    });
    返回值是一个包含单一了级的组件(ReactComponent

    在上面的示例中,我们在specification对象中定义了一个render方法,该方法是必须实现的方法。除render方法外,还定义一个displayName属性。

    specification对象中还可以定义更多的属性,这其中包括组件的生命周期参数,参数详细说明如下。


    2. 定义组件的参数

    2.1 渲染组件:render

    ReactComponent render()
    • 返回值:React组件(ReactComponent

    render()方法会根据组件的this.propsthis.state属性的改,渲染或重新渲染一个组件。React会对比其返回的ReactComponent,并判断是否将其渲染到DOM中。

    其返回值是一个单子级的组件,该组件可以是虚拟的本地DOM(如:<div/> 或 React.DOM.div()),也可以是自定义的复合组件。当不需要返回任何东西时,可以返回nullfalse

    render()应该是一个纯粹函数,即:不使用组件的state,每次调用都返回同样的结果,不读写DOM,不与浏览器交互,只做最单纯的渲染。当需要修改状态或有交互时,应该在componentDidMount等组件生命周期函数中进行。


    2.2 调试输出:displayName

    string displayName

    displayName属性用于组件调试时输出显示,JSX自动设置该值,可以理解为调试时显示的组件名。


    2.3 跨组件共享:mixins

    array mixins
    mixin属性是一个数组,通过该数组可以共享一些复杂组件间的共用功能。

    如,一个组件需要定期更新,这时我们可以setInterval()方法很容易的做到,但当不需要它时,我们要取消定时器以节省内存。下面我们使用 React 提供的生命周期方法来通知组件创建或销毁时间,并结合mixin,实现组件的定时清理(mixins.html):

    var SetIntervalMixin = {
      componentWillMount: function() {
        this.intervals = [];
      },
      setInterval: function() {
        this.intervals.push(setInterval.apply(null, arguments));
      },
      componentWillUnmount: function() {
        this.intervals.map(clearInterval);
      }
    };
    
    var TickTock = React.createClass({
      mixins: [SetIntervalMixin], // 引用 mixin
      getInitialState: function() {
        return {seconds: 0};
      },
      componentDidMount: function() {
        this.setInterval(this.tick, 1000); // 调用 mixin 的方法
      },
      tick: function() {
        this.setState({seconds: this.state.seconds + 1});
      },
      render: function() {
        return (
          <p>
            React 已经运行了 {this.state.seconds} 秒。
          </p>
        );
      }
    });
    
    React.render(
      <TickTock />,
      document.getElementById('example')
    );


    2.4 验证对象:propTypes

    object propTypes

    propTypes是React提供的一种验证机制,该对象中定义了一系列的验证方法,可对props进行验证。组件初始化时,如果传递的props属性和propTypes不匹配,则会打印一个console.warn日志。

    React.createClass({
      propTypes: {
      	// 验证布尔值
        optionalBool: React.PropTypes.bool,
        // 验证是一个函数
        optionalFunc: React.PropTypes.func,
        // 验证是数字
        optionalNumber: React.PropTypes.number,
        // 自定义验证器,验证失败需要返回一个 Error 对象。不要直接
        // 使用 `console.warn` 或抛异常,因为这样 `oneOfType` 会失效。
        customProp: function(props, propName, componentName) {
          //自定义的验证方法
          ……
        }
        // 其它验证
        ……
      },
      /* 其它specification... */
    });

    propTypes使用示例(propTypes.html):

    var App = React.createClass({
      propTypes: {
        site: React.PropTypes.shape({
          domain: React.PropTypes.string.isRequired,
          name: React.PropTypes.string
        }).isRequired
      },
      render: function() {
        return (
          <p>
            站点信息-{this.props.site.name}:{this.props.site.domain}
          </p>
        );
      }
    });
    
    var site = {
      name: 4,  // 不合法的类型
      domain: 'itbilu.com'
    }
    ReactDOM.render(
      <App site={site} />,
      document.getElementById('example')
    );
    
    // 运行后会抛出以下错误
    // Warning: Failed propType: Invalid prop `site.name` of type `number` supplied to `App`, expected `string`.


    2.5 静态方法对象:statics

    object statics

    statics对象使你可以定义一些静态方法,这些静态方法可以直接在组件上调用。如statics.html):

    var MyComponent = React.createClass({
      statics: {
        customMethod: function(foo) {
          return foo === 'bar';
        }
      },
      render: function() {
      }
    });
    
    MyComponent.customMethod('bar');  // true

    statics中定义的方法都是静态方法,所以你可以组件实例创建之前调用,这也意味着不能获取组件的 在这个块儿里面定义的方法都是静态的,意味着你可以在任何组件实例创建之前调用它们,这些方法不能获取组件的propsstate,如果需要在静态方法中使用propsstate,则要在调用时做为参数传入。


    3. 定义组件的参数-生命周期

    生命周期相关参数,是React定义组件时提供的一系列处理函数(钓子函数),这些函数会在组件生命周期的某个阶段调用。

    3.1 创建期:getDefaultProps

    object getDefaultProps()


    3.2 创建期:getInitialState

    object getInitialState()

    在组件挂载前(即:创建期)调用一次,其返回值将做为this.state的初始值。

    getInitialState()方法会组件类创建的时候调用一次,其返回值会被缓存下来。该方法用于设置props属性的默认值,但仅对于非必须属性。如果父组件没有指定props中的某个值,此返回对象中的相应属性将会合并到this.props

    getInitialState()方法会在组件实例创建前调用,这时还不能使用this.props属性,且其返回对象是在所有实例间共享的。


    3.3 创建期:componentWillMount

    componentWillMount()

    componentWillMount()服务器端和客户端都只调用一次,在初始化渲染执行之前被调用。如果在这个方法内调用setState()方法,render()方法将会收到更新后的state,也就是说这是我做在组件渲染前最后一个修改state的机会。


    3.4 创建期:componentDidMount

    componentDidMount()

    componentDidMount()会在组件初始化(渲染完成)后立即调用一次,我们一般在这个方法中使用this.getDOMNode()方法访问原始DOM。


    3.5 存在期:componentWillReceiveProps

    componentWillReceiveProps(object nextProps)

    componentWillReceiveProps()方法会在组件生命周期的存在期调用,当组件感知到props属性改变会,会调用此方法。render()方法将会在其后调用,这时我们可以通过this.setState()来阻止组件的再次渲染。


    3.6 存在期:shouldComponentUpdate

    boolean shouldComponentUpdate(object nextProps, object nextState)

    shouldComponentUpdate()方法发生在组件生命周期的存在器,在组件收到新的propsstate。在这个方法中,我们可以访问组件的propsstate属性,通过这两个属性可以确认组件是否需要更新,如果不需要更新,则返回false,则其后的方法将不会在执行。如:

    shouldComponentUpdate: function(nextProps, nextState) {
      return nextProps.id !== this.props.id;
    }


    3.7 存在期:componentWillUpdate

    componentWillUpdate(object nextProps, object nextState)

    componentWillUpdate()会在收到新的propsstate后调用,类似componentWillMount()


    3.8 存在期:componentDidUpdate

    componentDidUpdate(object prevProps, object prevState)

    componentDidUpdate()会在组件重新渲染后立即被调用,当我们需要在组件重新渲染后操作DOM则需要使用这个方法。


    3.9 销毁&清理期:componentWillUnmount

    componentWillUnmount()

    componentWillUnmount()是组件销毁&清理期唯一调用的方法,它会在组件从DOM中移除时被调用,这时我们可以清理一些状态或清理在componentDidMount中创建的DOM元素。


    展开全文
  • 实用指南>8.16 提炼参数对象

    千次阅读 2016-01-10 11:34:01
    某些参数总是同时出现,可能好几个方法都使用这样一组参数,为了避免参数列表过长,同时也为了避免重复代码, 我们可以将这些参数提炼为参数对象,原来传入参数的地方使用这个参数对象代替.更多实用技巧请查看《Android...

    某些参数总是同时出现,可能好几个方法都使用这样一组参数,为了避免参数列表过长,同时也为了避免重复代码, 我们可以将这些参数提炼为参数对象,原来传入参数的地方使用这个参数对象代替.

    更多实用技巧请查看《AndroidStudio实用指南》

    操作步骤:

    ➤ 菜单栏: Refactor —> Extract —> Parameter Object …

    实例演示:

    提炼参数对象前:

    public class TestExtract {
    
        private void getAndroidInfo(String serialNumber, String packageName, String versionName, String versionCode){
            DeviceInfo deviceInfo = new DeviceInfo();
            deviceInfo.setSerialNumber(serialNumber);
    
            PackageInfo packageInfo = new PackageInfo();
            packageInfo.setPackageName(packageName);
        }
    }

    第1步: 选中参数getAndroidInfo的所有参数 —> 执行菜单栏: Refactor —> Extract —> Parameter Object … —> 弹出参数参数配置对话框
    这里写图片描述

    更多实用技巧请查看《AndroidStudio实用指南》

    第2步: 本例我们选择创建内部类,名为AndroidInfo,默认提炼所有参数 —> Refactor

    提炼参数对象后:

    public class TestExtract {
    
        private void getAndroidInfo(AndroidInfo androidInfo){
            DeviceInfo deviceInfo = new DeviceInfo();
            deviceInfo.setSerialNumber(androidInfo.getSerialNumber());
    
            PackageInfo packageInfo = new PackageInfo();
            packageInfo.setPackageName(androidInfo.getPackageName());
        }
    
        private static class AndroidInfo {
            private final String serialNumber;
            private final String packageName;
            private final String versionName;
            private final String versionCode;
    
            private AndroidInfo(String serialNumber, String packageName, String versionName, String versionCode) {
                this.serialNumber = serialNumber;
                this.packageName = packageName;
                this.versionName = versionName;
                this.versionCode = versionCode;
            }
    
            public String getSerialNumber() {
                return serialNumber;
            }
    
            public String getPackageName() {
                return packageName;
            }
    
            public String getVersionName() {
                return versionName;
            }
    
            public String getVersionCode() {
                return versionCode;
            }
        }
    }

    更多实用技巧请查看《AndroidStudio实用指南》

    作者: 老毕

    微信公众帐号: wirelessqa

    博客: http://blog.csdn.net/wirelessqa

    微博: http://weibo.com/wirelessqa

    展开全文
  • js获取url中参数生成参数对象

    千次阅读 2018-12-21 16:09:47
    后边的参数按“&amp;”取出来并组合成一个对象 function getQueryStringArgs() { //取得查询字符串并去掉开头的问号 var qs = (location.search.length &gt; 0 ? location.search.sub...
  • 前端 ajax提交设置 contentType:"application/json" 提交格式 { ... "buyer_name": "lzs", "buyer_mobile": "123456789", "passengers": [{ "create_time": "2019-04-24 14:56:30", "passport": "b1234888", ...
  • 后面觉得很奇怪,就去网上查了下,好像是这些参数对象不能同时添加到多个命令中,具体机制就不得而知了.但一个参数对象被添加到多个命令中,实际上都是指向同一份,对象还是同一个,如果ADO在底层会修改命令参数(返回
  • 我想要创建一个类,生成的对象有默认属性,同时也可以通过传入参数的形式修改其默认属性。 例如: 我有一个person类 他有age 和 name两个属性 初始化的时候属性分别为18 和 towrabbit。但是创建新的person对象的时候...
  • js参数对象过滤

    千次阅读 2016-09-03 14:30:24
    var obj = {name:'', age:1, sex:'蓝'}; var parFilter = function(obj) { for(o in obj) { if(obj[o] == "" || obj[o] == undefined) { delete obj[o]; } } return obj; } ...parFilte
  • SpringBoot返回首字母大写的参数对象

    千次阅读 2019-08-19 15:27:08
    在工作中,写业务信息交换接口时,偶尔会遇到需求方要求传入和返回首字母大写的参数,不符合变量首字符小写的变量命名规范,在返回时会遇到spring自动将首字母大写的参数转换为首字母小写。 返回参数解决方法: 1....
  • 今天在调试项目的时候遇到一个坑,用Postman发送一个post请求,在Springboot项目使用@RequestBody接收时参数总是报不存在,但是多次检查postman上的请求格式以及项目代码都没有问题 Postman: 请求参数: { ...
  • 用AdoQuery从脚本文件读入内容,执行时提示“不正常地定义参数对象”,“提供了不一致或不完整的信息”之类的错误,本以为是SQL语句有问题,用查询分析器执行时没有发现错误,一切OK。但一到Delphi中执行就提示“不...
  • Mybatis参数对象中有List集合时的处理

    千次阅读 2018-11-30 10:15:59
    使用场景:当前端传入一个数组以及其他参数信息,springMVC使用java bean进行接收,然后将数组参数(传到后台实质为String类型)在后台转化为List类型,并封装在bean中,将整个对象传入Mybatis中。 Java Bean中参数...
  • 为了弄清楚python函数传参到底是传值还是传引用的问题,进行了下面的小实验(以列表对象为例): (1)如何让两个变量指向同一个对象?: a = [1,2,3,4] b = a[:] c = a print('id(a)={}'.format(id(a))) print('...
  • 其中params在远程webService中是一个对象对象中有两个字段分别是userNo和productCode,我怎么做才能把对象传过去,如果我直接定义一个对象的话,会报”org.apache.cxf.interceptor.Fault: Marshalling Error: ...
  • 前端使用axios发送Post请求给后端,后端使用@RequestBody接收,发现对象为空   原因,对象没有setter方法 在对象上加上setter方法 如果项目依赖lombok的话,直接在类上加上@Data注解就好了....
  • java 参数对象在函数内被赋值问题

    千次阅读 2018-08-23 16:44:35
    1.对象 package com.knife.test; public class A { private String name; private int age; public String getName() { return name; } public void setName(String name) { this.name = name; } ...
  • 原址:... 写代码时碰到个需要将对象里的子明细一起传递到controller里去,当时就想直接将参数一起传递过来,贴下代码: controller: [java] view plain copy @RequestMapping(p
  • 1.传递复杂参数对象需要用Post,另外需要注意,Feign不支持使用GetMapping 和PostMapping @RequestMapping(value="user/save",method=RequestMethod.POST) 2.在传递的过程中,复杂对象使用@RequestBody进行...
  • 原因在于swagger在读取参数的时候,如果发现参数的属性也是一个对象时会继续进行展开,代码如下: 由此就可能出现我遇到的这种情况:(笑哭) 就这样没玩没了的展开,直到内存爆炸~~~ 那怎么解决呢? 在网上...
  • 使用ado调用存储过程,其中一个参数为image类型,当插入的二进制长度为空时,出现“不正常地定义参数对象。提供了不一致或不完整的信息”错误。代码如下 SAFEARRAY *psa; SAFEARRAYBOUND rgsabound[1]; rgsabound...
  • 后面的参数 var url='http://xxxxxxx.com/?code=021P6CY?name=123' function obj(url,n){ var urlAry = url.split('?')[n].split('&'); var urlObj = {}; urlAry.map(item=> { item = item.split('='); urlObj...
  • 我们平时使用asp.net mvc的时候,服务器端可以自动把请求的变量转换成参数的变量。 如果要调用 AccountController 里的 public ActionResult CheckLogin(string username, string pwd) action,那我们只需要在...
  • 在Delphi中提交一条SQL语句,系统出现了如下的错误:---------------------------Error---------------------------不正常地定义参数对象。提供了不一致或不完整的信息。UPDATE xtCxzb SET cxzbName=公户档案 ,...
  • 在stackoverflow 上有的,是我的原创文章:
  • 这个错误是在执行一个查询语句的时候产生的: with dm.ADOQuery1 do begin Close; SQL.Clear; SQL.Add(select hyxx.*,hyjbxx.jbmc from hyxx,hyjbxx where hyxx.jb=hyjbxx.jbid); Open; end;...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 216,100
精华内容 86,440
关键字:

参数对象