`

X5 中当设置动作的参数是Object时需要设置contentType: "application/json"

    博客分类:
  • X5
x5 
阅读更多

最近遇到的一个问题X5 Action能接收Object 的参数

 

var params = new justep.Request.ActionParam();

 

//对象参数,ObjectParam对应的class必须有包名

var objectSerialize = {name: "霍金", sex: "男", age: 70}; 

//var objectSerialize = "<DemoObject name='霍金' sex='男' age='70'></DemoObject>"; 

 

var objectParam = new justep.Request.ObjectParam(objectSerialize, "demo.DemoObject");

params.setObject("param_object", objectParam);

 

justep.Request.sendBizRequest2({

       contentType: "application/json",//这个代码不能忘记

action: "demoObjectTest",

parameters: params,

callback: function(result) {

if (result.state) {

alert("调用成功!");

} else {

throw new Error("调用失败!|" + result.response.message);

}

}

});

 

否则报错:

013-11-02 21:30:43 invokeActions error!

com.justep.model.exception.ModelException: java.lang.NullPointerException

at com.justep.system.action.Engine.invokeActions(Unknown Source)

at com.justep.business.server.BusinessServer.doAction(Unknown Source)

at com.justep.business.server.BusinessServer.doExcute(Unknown Source)

at com.justep.business.server.BusinessServer.excute(Unknown Source)

at com.justep.business.server.BusinessServerServlet.execService(Unknown Source)

at com.justep.business.server.BusinessServerServlet.service(Unknown Source)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

at com.justep.x.bs.BusinessServerServlet.service(Unknown Source)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)

at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)

at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)

at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)

at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857)

at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)

at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)

at java.lang.Thread.run(Thread.java:595)

Caused by: java.lang.NullPointerException

at demo.DemoObject.reader(DemoObject.java:66)

at com.justep.system.transform.ActionParameterTransform.transObjectParam(Unknown Source)

at com.justep.system.transform.ActionParameterTransform.transParam(Unknown Source)

at com.justep.system.transform.ActionParameterTransform.helpTransformByElement(Unknown Source)

at com.justep.system.transform.ActionParameterTransform.transform(Unknown Source)

at com.justep.system.transform.RequestTransform.transParamValue(Unknown Source)

at com.justep.system.transform.RequestTransform.transActionParams(Unknown Source)

at com.justep.system.transform.RequestTransform.transform(Unknown Source)

at com.justep.system.action.Engine.translateParameters(Unknown Source)

at com.justep.system.action.Engine.invokeActions(Native Method)

 

错误原因是:

  contentType: "application/json" 这个contentType 指string 发送请求的格式 ,如果不指定默认是如下格式

'application/x-www-form- urlencoded' (其他解释见http://www.cnblogs.com/mumue/archive/2012/05/24/2515984.html

 

 

分享到:
评论

相关推荐

    ajax中设置contentType: “application/json”的作用

    最近在做项目交互的时候,刚开始向后台传递数据返回 415 ,后来百度添加了 contentType:“application/json“ 之后返回400,然后把传输的数据格式改为json字符串就传输成功了,现在我们来看看 contentType:...

    ajax中设置contentType: "application/json"的作用

    主要介绍了ajax中设置contentType: “application/json”的作用,需要的朋友可以参考下

    $.ajax中contentType: “application/json” 的用法详解

    主要介绍了$.ajax中contentType: “application/json” 的用法,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下

    Building a JSON web service with Java and Axis2

    &lt;messageFormatter contentType="application/json/badgerfish" class="org.apache.axis2.json.JSONBadgerfishMessageFormatter"/&gt; 6.Add JSON Message builders to the axis2.xml: &lt;messageBuilder contentType=...

    Ajax调用restful接口传送Json格式数据的方法

    ajax传送json格式数据,关键是指定contentType,data要是json格式 如果是restful接口,把type改成对应的post(增)、delete(删)、put(改)、get(查)即可 var post_data={"name":"test001","pass":"xxxx"}; $....

    解决ajax异步请求返回的是字符串问题

    header('Content-Type:application/json;'); 或者。j s 添加 contentType: application/json; charset=utf-8, dataType: json, $.ajax({ url:'../data/insert_category.php?article_type=' + value, contentType:...

    jQuery.get、jQuery.getJSON、jQuery.post无法返回JSON问题的解决方法

    经过尝试,只需要在$.ajax中加入 contentType: “application/json; charset=utf-8″选项就可以了,这是因为在.net 3.5以后要对contentType进行检查,所以仅仅指定dataType的话.net就不会返回JSON了,那么我们的请求...

    json2.js javascript

    contentType:"application/json;charset=utf-8", success:function(){$("#message").html("Employee Saved").fadeIn();}, error:function(){$("#message").html("Error Occurred").fadeIn();} }); return false...

    jackson jar文件及其解决不能对Date序列化的问题.

    SpringMVC_Coustom_json_... contentType:"application/json", dataType: "json", async : true, data: JSON.stringify(data1), success: function(data) { console.info(data) } });

    jqgrid分页参数

    现在把找好的分页参数跟大家分享下

    springboot后台接收axios传递的json数据为null

    请求头contentType设置为application/x-www-form-urlencoded;charset=utf-8。 后台接收请求的方法的参数可以用String类型 @RequestBody 是作用在形参列表上,用于将前台发送过来固定格式的数据【xml 格式或

    ajax快速解决参数过长无法提交成功的问题

    在ajax中使用post方法,用常规的参数格式:param1=a1&param2=a2 ,当参数长度过长时,依然提交不成功。比如我们经常这样写一个ajax的post请求: $.ajax({ type: "post", // post or get contentType:"application...

    新闻发布系统

    // 设置响应内容格式和编码格式,相当于JSP的page指令的contentType属性 HttpSession session = request.getSession(); // 获取session对象 PrintWriter out = response.getWriter(); // 获取out对象(响应输出...

    java上传图片

    就是ajax请求设置了“contentType : “application/json””,导致controller获取不到username和password这两个参数。 后面去掉contentType : “application/json”,采用默认的就可以了。

    文件上传FileAjaxUpload.js 文件

    支持input或者其他异步的文件上传的js,使用此方法传入id即可进行上传 ... dataType: 'json', //返回值类型 一般设置为json success:callback, error: function ()//服务器响应失败处理函数 { } }); }

    springmvc3.2.4返回json的contentType在ie里无法取到结果,修改包

    新springmvc的json默认返回contentType是application/json,会导致ie等认为需要调用application打开,而不是当作文本处理。 改包已经修改了返回的contentType为text/html,前台脚本可以按照以前的处理方式处理

    乱码问题解决方案

    *建议创建工程后,在书写代码前先设置编码--》在工程上点右键 proference *在Servlet部分设置两条语句: response.setContentType("text/html;charset=utf-8"); request.setCharacterEncoding("utf-8"); ...

    文件下载及web文件的contentType类型大全

    String filePath=""; File file=new File(filePath); //解决乱码问题 String filename=URLEncoder.encode(file.getName(),"utf-8"); ...Response.AddHeader("Content-Disposition", ...".vsx"="application/vnd....

    mysql-connector-java-commercial-5.1.30-bin.jar

    在Windows XP下安装完MySQL后,它就已经自动启动服务了,并且在开始菜单中有其客户端的快捷方式连接 可以通过Windows的服务管理器查看。“开始”-“运行”,输入“services.msc”,回车。 弹出Windows的服务管理...

    jsonpme:JSONP.me一项小服务,可将任何JSON API转换为jsonp API

    概述 一项非常简单的服务,可以将任何JSON api转换为JSONP API。 这项小服务的目的是避免跨源并发症。 这纯粹是一种简单的方法,无需客户端就可以在...contentType: "application/json", dataType: 'jsonp', success

Global site tag (gtag.js) - Google Analytics