• 关于 success 的搜索结果

问题

钉钉回调加解密问题求助

php小白菜 2019-12-01 21:46:18 2647 浏览量 回答数 6

回答

var _ajax = window.$ajax; window.$.ajax = function(options){ var _success = options.success; options.success = function(res){ //事前处理,因为原success的代码保存到_success了,直接调用就行了 }; return _ajax.apply(this, arguments);

小旋风柴进 2019-12-02 02:28:20 0 浏览量 回答数 0

问题

正确定义接口的返回值(boolean/Boolean)类型及命名(success/Success)

montos 2020-06-01 21:25:27 1 浏览量 回答数 1

试用中心

为您提供0门槛上云实践机会,企业用户最高免费12个月

问题

#支付宝 php返回支付宝success带??或?success?

保持可爱mmm 2020-05-05 17:18:05 0 浏览量 回答数 1

问题

OSS success_action_redirect 与 callbackUrl 冲突

互融 2019-12-01 20:01:37 1531 浏览量 回答数 0

问题

RestKit 0.20 Post提交JSON数据怎么返回String响应?

杨冬芳 2019-12-01 20:14:29 1067 浏览量 回答数 1

问题

Jquery ajax json 不执行success的原因

杨冬芳 2019-12-01 20:09:44 988 浏览量 回答数 1

回答

重复收到原因 1、未返回success 2、异步通知不是同一个交易状态触发的异步 排查方案 1、未返回success 异步回调数据接收成功,在执行完业务逻辑后,没有返回success这7个字符给支付宝,导致支付宝服务器不断重复发送通知。 重复通知特性如下:25小时以内完成8次通知(通知的间隔频率一般是4m,10m,10m,1h,2h,6h,15h)。 注:返回success后带有其他信息,也会导致同一个状态的交易通知重复发送。 具体各语言输出success详细说明可点击【支付宝异步通知说明】查看第6点为什么重复收到异步通知说明。 可通过云排查说明查询异步是否返回success。 2、异步通知不是同一个交易状态触发的异步 请检查通知内容中的支付状态(trade_status)是否是不同的参数值。 因为在交易状态发生改变后,支付宝会触发不同交易状态的异步通知,并且不同状态的异步回调数据在接收成功,在执行完业务逻辑后都需要返回success给支付宝。 支付产品具体有哪些交易状态可点击【支付宝异步通知说明】查看第5点异步通知交易状态介绍说明。 各产品默认会触发哪些交易状态通知,请参考【交易状态的异步触发条件】。

保持可爱mmm 2020-05-05 17:10:49 0 浏览量 回答数 0

回答

获取sdcard 路径 Environment.getExternalStorageDirectory(); 创建目录(将指定目录与sdcard路径拼接) 创建目录 File folder = new File(Environment.getExternalStorageDirectory() + "/Android/data/mypakagename/android/myfile/abc"); boolean success = true; if (!folder.exists()) { success = folder.mkdir(); } if (success) { // Do something on success } else { // Do something else on failure } 添加权限: 创建文件 File file = new File(folder,"myfile.txt") ;

蛮大人123 2019-12-02 01:48:28 0 浏览量 回答数 0

回答

比如说下面这个方法的注释: Java代码 收藏代码 @Action(value="testURL", results=@Result(name="success", location="/WEB-INF/content/security/user-input.jsp")) public String testURL() throws Exception { return SUCCESS; } 所在类User的namespace为:security,那么以下两种方式 /security/user!testURL.action /secuity/testURL.action 这两个url访问都是同样这个方法,但是区别是返回的SUCCESS,如果使用security/user!testURL.action访问,那么返回的不是方法级别上注解的success的location。如果是/secuity/testURL.action访问,那么返回的是这里配置的success对应的location

长安归故里. 2020-01-13 17:18:30 0 浏览量 回答数 0

回答

在日常开发中,我们会经常要在类中定义布尔类型的变量,比如在给外部系统提供一个RPC接口的时候,我们一般会定义一个字段表示本次请求是否成功的。 关于这个"本次请求是否成功"的字段的定义,其实是有很多种讲究和坑的,稍有不慎就会掉入坑里,作者在很久之前就遇到过类似的问题,本文就来围绕这个简单分析一下。到底该如何定一个布尔类型的成员变量。 一般情况下,我们可以有以下四种方式来定义一个布尔类型的成员变量: boolean success boolean isSuccess Boolean success Boolean isSuccess 以上四种定义形式,你日常开发中最常用的是哪种呢?到底哪一种才是正确的使用姿势呢? 通过观察我们可以发现,前两种和后两种的主要区别是变量的类型不同,前者使用的是boolean,后者使用的是Boolean。 另外,第一种和第三种在定义变量的时候,变量命名是success,而另外两种使用isSuccess来命名的。 首先,我们来分析一下,到底应该是用success来命名,还是使用isSuccess更好一点。 success 还是 isSuccess 到底应该是用success还是isSuccess来给变量命名呢?从语义上面来讲,两种命名方式都可以讲的通,并且也都没有歧义。那么还有什么原则可以参考来让我们做选择呢。 在阿里巴巴Java开发手册中关于这一点,有过一个『强制性』规定:  那么,为什么会有这样的规定呢?我们看一下POJO中布尔类型变量不同的命名有什么区别吧。 class Model1 { private Boolean isSuccess; public void setSuccess(Boolean success) { isSuccess = success; } public Boolean getSuccess() { return isSuccess; } } class Model2 { private Boolean success; public Boolean getSuccess() { return success; } public void setSuccess(Boolean success) { this.success = success; } } class Model3 { private boolean isSuccess; public boolean isSuccess() { return isSuccess; } public void setSuccess(boolean success) { isSuccess = success; } } class Model4 { private boolean success; public boolean isSuccess() { return success; } public void setSuccess(boolean success) { this.success = success; } } 以上代码的setter/getter是使用Intellij IDEA自动生成的,仔细观察以上代码,你会发现以下规律: 基本类型自动生成的getter和setter方法,名称都是isXXX()和setXXX()形式的。包装类型自动生成的getter和setter方法,名称都是getXXX()和setXXX()形式的。 既然,我们已经达成一致共识使用基本类型boolean来定义成员变量了,那么我们再来具体看下Model3和Model4中的setter/getter有何区别。 我们可以发现,虽然Model3和Model4中的成员变量的名称不同,一个是success,另外一个是isSuccess,但是他们自动生成的getter和setter方法名称都是isSuccess和setSuccess。 Java Bean中关于setter/getter的规范 关于Java Bean中的getter/setter方法的定义其实是有明确的规定的,根据JavaBeans(TM) Specification规定,如果是普通的参数propertyName,要以以下方式定义其setter/getter: public <PropertyType> get<PropertyName>(); public void set<PropertyName>(<PropertyType> a); 但是,布尔类型的变量propertyName则是单独定义的: public boolean is<PropertyName>(); public void set<PropertyName>(boolean m);  通过对照这份JavaBeans规范,我们发现,在Model4中,变量名为isSuccess,如果严格按照规范定义的话,他的getter方法应该叫isIsSuccess。但是很多IDE都会默认生成为isSuccess。 那这样做会带来什么问题呢。 在一般情况下,其实是没有影响的。但是有一种特殊情况就会有问题,那就是发生序列化的时候。 序列化带来的影响 关于序列化和反序列化请参考Java对象的序列化与反序列化。我们这里拿比较常用的JSON序列化来举例,看看看常用的fastJson、jackson和Gson之间有何区别: public class BooleanMainTest { public static void main(String[] args) throws IOException { //定一个Model3类型 Model3 model3 = new Model3(); model3.setSuccess(true); //使用fastjson(1.2.16)序列化model3成字符串并输出 System.out.println("Serializable Result With fastjson :" + JSON.toJSONString(model3)); //使用Gson(2.8.5)序列化model3成字符串并输出 Gson gson =new Gson(); System.out.println("Serializable Result With Gson :" +gson.toJson(model3)); //使用jackson(2.9.7)序列化model3成字符串并输出 ObjectMapper om = new ObjectMapper(); System.out.println("Serializable Result With jackson :" +om.writeValueAsString(model3)); } } class Model3 implements Serializable { private static final long serialVersionUID = 1836697963736227954L; private boolean isSuccess; public boolean isSuccess() { return isSuccess; } public void setSuccess(boolean success) { isSuccess = success; } public String getHollis(){ return "hollischuang"; } } 以上代码的Model3中,只有一个成员变量即isSuccess,三个方法,分别是IDE帮我们自动生成的isSuccess和setSuccess,另外一个是作者自己增加的一个符合getter命名规范的方法。 以上代码输出结果: Serializable Result With fastjson :{"hollis":"hollischuang","success":true} Serializable Result With Gson :{"isSuccess":true} Serializable Result With jackson :{"success":true,"hollis":"hollischuang"} 在fastjson和jackson的结果中,原来类中的isSuccess字段被序列化成success,并且其中还包含hollis值。而Gson中只有isSuccess字段。 我们可以得出结论:fastjson和jackson在把对象序列化成json字符串的时候,是通过反射遍历出该类中的所有getter方法,得到getHollis和isSuccess,然后根据JavaBeans规则,他会认为这是两个属性hollis和success的值。直接序列化成json:{"hollis":"hollischuang","success":true} 但是Gson并不是这么做的,他是通过反射遍历该类中的所有属性,并把其值序列化成json:{"isSuccess":true} 可以看到,由于不同的序列化工具,在进行序列化的时候使用到的策略是不一样的,所以,对于同一个类的同一个对象的序列化结果可能是不同的。 前面提到的关于对getHollis的序列化只是为了说明fastjson、jackson和Gson之间的序列化策略的不同,我们暂且把他放到一边,我们把他从Model3中删除后,重新执行下以上代码,得到结果: Serializable Result With fastjson :{"success":true} Serializable Result With Gson :{"isSuccess":true} Serializable Result With jackson :{"success":true} 现在,不同的序列化框架得到的json内容并不相同,如果对于同一个对象,我使用fastjson进行序列化,再使用Gson反序列化会发生什么? public class BooleanMainTest { public static void main(String[] args) throws IOException { Model3 model3 = new Model3(); model3.setSuccess(true); Gson gson =new Gson(); System.out.println(gson.fromJson(JSON.toJSONString(model3),Model3.class)); } } class Model3 implements Serializable { private static final long serialVersionUID = 1836697963736227954L; private boolean isSuccess; public boolean isSuccess() { return isSuccess; } public void setSuccess(boolean success) { isSuccess = success; } @Override public String toString() { return new StringJoiner(", ", Model3.class.getSimpleName() + "[", "]") .add("isSuccess=" + isSuccess) .toString(); } } 以上代码,输出结果: Model3[isSuccess=false] 这和我们预期的结果完全相反,原因是因为JSON框架通过扫描所有的getter后发现有一个isSuccess方法,然后根据JavaBeans的规范,解析出变量名为success,把model对象序列化城字符串后内容为{"success":true}。 根据{"success":true}这个json串,Gson框架在通过解析后,通过反射寻找Model类中的success属性,但是Model类中只有isSuccess属性,所以,最终反序列化后的Model类的对象中,isSuccess则会使用默认值false。 但是,一旦以上代码发生在生产环境,这绝对是一个致命的问题。 所以,作为开发者,我们应该想办法尽量避免这种问题的发生,对于POJO的设计者来说,只需要做简单的一件事就可以解决这个问题了,那就是把isSuccess改为success。这样,该类里面的成员变量时success,getter方法是isSuccess,这是完全符合JavaBeans规范的。无论哪种序列化框架,执行结果都一样。就从源头避免了这个问题。 引用以下R大关于阿里巴巴Java开发手册这条规定的评价(https://www.zhihu.com/question/55642203):  所以,在定义POJO中的布尔类型的变量时,不要使用isSuccess这种形式,而要直接使用success! Boolean还是boolean 前面我们介绍完了在success和isSuccess之间如何选择,那么排除错误答案后,备选项还剩下: boolean success Boolean success 那么,到底应该是用Boolean还是boolean来给定一个布尔类型的变量呢? 我们知道,boolean是基本数据类型,而Boolean是包装类型。关于基本数据类型和包装类之间的关系和区别请参考一文读懂什么是Java中的自动拆装箱 那么,在定义一个成员变量的时候到底是使用包装类型更好还是使用基本数据类型呢? 我们来看一段简单的代码 /** * @author Hollis */ public class BooleanMainTest { public static void main(String[] args) { Model model1 = new Model(); System.out.println("default model : " + model1); } } class Model { /** * 定一个Boolean类型的success成员变量 */ private Boolean success; /** * 定一个boolean类型的failure成员变量 */ private boolean failure; /** * 覆盖toString方法,使用Java 8 的StringJoiner */ @Override public String toString() { return new StringJoiner(", ", Model.class.getSimpleName() + "[", "]") .add("success=" + success) .add("failure=" + failure) .toString(); } } 以上代码输出结果为: default model : Model[success=null, failure=false] 可以看到,当我们没有设置Model对象的字段的值的时候,Boolean类型的变量会设置默认值为null,而boolean类型的变量会设置默认值为false。 即对象的默认值是null,boolean基本数据类型的默认值是false。 在阿里巴巴Java开发手册中,对于POJO中如何选择变量的类型也有着一些规定: 这里建议我们使用包装类型,原因是什么呢? 举一个扣费的例子,我们做一个扣费系统,扣费时需要从外部的定价系统中读取一个费率的值,我们预期该接口的返回值中会包含一个浮点型的费率字段。当我们取到这个值得时候就使用公式:金额*费率=费用 进行计算,计算结果进行划扣。 如果由于计费系统异常,他可能会返回个默认值,如果这个字段是Double类型的话,该默认值为null,如果该字段是double类型的话,该默认值为0.0。 如果扣费系统对于该费率返回值没做特殊处理的话,拿到null值进行计算会直接报错,阻断程序。拿到0.0可能就直接进行计算,得出接口为0后进行扣费了。这种异常情况就无法被感知。 这种使用包装类型定义变量的方式,通过异常来阻断程序,进而可以被识别到这种线上问题。如果使用基本数据类型的话,系统可能不会报错,进而认为无异常。 以上,就是建议在POJO和RPC的返回值中使用包装类型的原因。 但是关于这一点,作者之前也有过不同的看法:对于布尔类型的变量,我认为可以和其他类型区分开来,作者并不认为使用null进而导致NPE是一种最好的实践。因为布尔类型只有true/false两种值,我们完全可以和外部调用方约定好当返回值为false时的明确语义。 后来,作者单独和《阿里巴巴Java开发手册》、《码出高效》的作者——孤尽 单独1V1(qing) Battle(jiao)了一下。最终达成共识,还是尽量使用包装类型。 但是,作者还是想强调一个我的观点,尽量避免在你的代码中出现不确定的null值。 总结 本文围绕布尔类型的变量定义的类型和命名展开了介绍,最终我们可以得出结论,在定义一个布尔类型的变量,尤其是一个给外部提供的接口返回值时,要使用success来命名,阿里巴巴Java开发手册建议使用封装类来定义POJO和RPC返回值中的变量。但是这不意味着可以随意的使用null,我们还是要尽量避免出现对null的处理的。

montos 2020-06-01 21:26:05 0 浏览量 回答数 0

回答

响应的成功后的success方法内,添上响应数据试试,success:function(data),没有data。###### 引用来自“爱coding”的答案 响应的成功后的success方法内,添上响应数据试试,success:function(data),没有data。 +1 ######设置返回data类型,是json?还是html?######arguments[2].resposeText######arguments[2].responseText

爱吃鱼的程序员 2020-06-03 17:28:32 0 浏览量 回答数 0

回答

通知触发条件 异步通知是根据交易状态触发的: 1、当面付的支付接口,详见 当面付异步通知-仅用于扫码支付 默认TRADE_SUCCESS(交易成功)触发,其余交易状态均不触发异步通知 2、APP支付接口,详见 App支付异步通知触发条件 默认TRADE_SUCCESS(交易成功),TRADE_CLOSED(交易关闭),TRADE_FINISHED(交易完成)三种状态均会触发异步通知,WAIT_BUYER_PAY(交易创建)不触发异步通知。 3、手机网站支付接口,详见 手机网站支付结果异步通知触发条件 默认TRADE_SUCCESS(交易成功),TRADE_CLOSED(交易关闭),TRADE_FINISHED(交易完成)三种状态均会触发异步通知,WAIT_BUYER_PAY(交易创建)不触发异步通知。 4、电脑网站支付接口,详见 电脑网站支付异步通知触发条件 默认TRADE_SUCCESS(交易成功)状态触发异步通知,TRADE_CLOSED(交易关闭),TRADE_FINISHED(交易完成),WAIT_BUYER_PAY(交易创建)不触发异步通知 交易状态说明 image.png 部分退款触发TRADE_SUCCESS原因 只有支付成功后的订单才能进行退款,只有全额退款成功后订单状态才会从TRADE_SUCCESS变成TRADE_CLOSED状态,触发TRADE_CLOSED的异步通知,所以部分退款的订单状态还是TRADE_SUCCESS,相当于刷新了一遍,也会触发TRADE_SUCCESS的异步通知。

保持可爱mmm 2020-05-05 17:16:46 0 浏览量 回答数 0

问题

RestKit 0.20 Post提交JSON数据怎么返回String响应??报错

爱吃鱼的程序员 2020-06-22 13:14:16 0 浏览量 回答数 1

问题

一个返回值类型为String的方法最后方法回的是一个 SUCCESS,应该如何这个方法呢

爵霸 2019-12-01 19:29:02 1072 浏览量 回答数 1

问题

怎样在jquery.ajax中执行当前函数的其他方法?

云栖技术 2019-12-01 19:25:51 866 浏览量 回答数 1

问题

jquery.ajax的success的回调函数

小旋风柴进 2019-12-01 19:35:37 922 浏览量 回答数 1

问题

ajax 带参数请求后 在controller中获取参数

a123456678 2019-12-01 20:22:53 1152 浏览量 回答数 1

问题

lite检查点怎么设置

zqz 2019-12-01 20:00:33 1382 浏览量 回答数 0

问题

pgpool stream主备模式,断开备节点后,为什么会pgpool重启所有子进程

pis-j 2019-12-01 19:37:20 2941 浏览量 回答数 1

问题

Jquery AJAX如何使用Promise/Deferred实现顺序执行?

小旋风柴进 2019-12-01 19:30:56 1910 浏览量 回答数 1

回答

把success改成success: function (result) {alert("获取成功");}, 肯定能弹出"获取成功", 但这样ajax只知道代码执行成功了,所以执行success中的内容, 但是它获取不到success里的result, 也就是后台的str 要想像你那样获取到它,并且弹出来,必须把PrintWriter那句去掉,最后面3个out.xxx()也去掉,在后台最后加一行代码, 那就是将字符串str转换成JSON串, 这样ajax才能获取到result的值, 也就是在String str=new String(data.toString().getBytes("UTF-8"),"UTF-8");的后面加一句,就是用writerJson()方法转化一下str就完了,ajax不需要在后台写返回方法,它自己就能获取

吴孟桥 2019-12-02 02:27:04 0 浏览量 回答数 0

问题

云相册的API开发接口DeletePhotos怎么使用

云栖大讲堂 2019-12-01 21:14:59 1022 浏览量 回答数 0

问题

云相册的API开发接口InactivatePhotos怎么使用

云栖大讲堂 2019-12-01 21:15:07 1189 浏览量 回答数 0

问题

云相册的API开发接口ReactivatePhotos怎么使用

云栖大讲堂 2019-12-01 21:15:10 1049 浏览量 回答数 0

问题

iOS 阿里云移动推送

qdd 2019-12-01 19:51:54 1534 浏览量 回答数 1

问题

我总结了下学到知识,./ ../ /在各个 语言代表什么,欢迎纠正一下.

杨冬芳 2019-12-01 20:09:54 702 浏览量 回答数 1

问题

云相册的API相簿接口DeleteAlbums怎么使用

云栖大讲堂 2019-12-01 21:15:13 1114 浏览量 回答数 0

回答

MAN SDK没有提供回调接口,可通过查看Log验证埋点数据是否正确上报; SDK上报返回Log格式如下所示: /* "t" : 时间戳 "ret" : 错误码(成功上报时为空) "success" : 是否成功上报("success"或"fail") */ {"t":time,"ret":"","success":""} 日志是否成功上报可通过success字段查看,若该字段值为fail,可查看ret字段的错误码来定位错误。

保持可爱mmm 2020-03-28 17:12:25 0 浏览量 回答数 0

回答

返回的msg是什么。直接用msg.success,你确定不用转成数组对象.主要是success方法都没有进,你在看下我重新编辑了我的问题<spanstyle="font-family:微软雅黑,Verdana,sans-serif,宋体;font-size:14px;line-height:22px;background-color:#FFFFFF;">  if(msg.success){<spanstyle="font-family:微软雅黑,Verdana,sans-serif,宋体;font-size:14px;line-height:22px;background-color:#FFFFFF;">                alert(msg.msg); <spanstyle="font-family:微软雅黑,Verdana,sans-serif,宋体;font-size:14px;line-height:22px;background-color:#FFFFFF;">              } <spanstyle="font-family:微软雅黑,Verdana,sans-serif,宋体;font-size:14px;line-height:22px;background-color:#FFFFFF;">这里不是这么访问的。msg是一个数组。主要是success方法都没有进,你在看下我重新编辑了我的问题都说了。。。msg是个数组。。。你先去学习下js的数组再说。真是的。。。我把后台的success这个字段换成suc居然就ok了这是为什么呢?,不要说success是js的关键字什么的有可能是你的JSON不严谨,造成parseerror

爱吃鱼的程序员 2020-06-22 18:10:25 0 浏览量 回答数 0
阿里云大学 云服务器ECS com域名 网站域名whois查询 开发者平台 小程序定制 小程序开发 国内短信套餐包 开发者技术与产品 云数据库 图像识别 开发者问答 阿里云建站 阿里云备案 云市场 万网 阿里云帮助文档 免费套餐 开发者工具 云栖号物联网 小程序开发制作 视频内容分析 企业网站制作 视频集锦 代理记账服务 2020阿里巴巴研发效能峰会 企业建站模板 云效成长地图 高端建站 云栖号弹性计算 阿里云云栖号 云栖号案例 云栖号直播