`

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” 的用法详解

    当我们设置`contentType: "application/json"`时,它定义了发送到服务器的数据格式。这在处理JSON数据时尤其有用,因为JSON是一种轻量级的数据交换格式,广泛应用于Web服务和API之间。 1. **contentType参数的作用*...

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

    当我们在AJAX请求中设置contentType为"application/json"时,这个设置会对请求产生以下几个影响: 1. 指定数据格式:当我们设置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"}; $....

    DELPHI之superobject实现JSON格式,可实现POST

    在 DELPHI 开发中,SuperObject 是一个非常流行的库,用于处理 JSON 数据。这个库提供了强大而灵活的 API,使得解析、创建和操作 JSON 对象变得轻而易举。在本文中,我们将深入探讨如何使用 SuperObject 实现 JSON ...

    所有contentType类型

    ### 所有ContentType类型概述 在互联网通信及文件传输过程中,`Content-Type`是一个非常重要的HTTP头部字段,它用于指示资源的数据格式或类型。通过不同的`Content-Type`值,服务器可以告诉客户端(如浏览器)如何...

    经典ASP读取JSON字符串/生成JSON对象,数组对象等。

    当JSON数据包含数组时,可以遍历数组中的每个元素。假设我们有如下JSON字符串: ```json {"items": ["item1", "item2", "item3"]} ``` 可以这样处理: ```vbscript Dim jsonObj, itemsArr, item Set jsonObj...

    HttpClient模拟get,post请求并发送请求参数(json等)

    如果需要发送JSON数据,我们可以使用StringEntity: ```java HttpPost httpPost = new HttpPost("http://example.com"); httpPost.setHeader("Accept", "application/json"); httpPost.setHeader("Content-type", ...

    解决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:...

    spring_MVC源码

    07. public Object save(final Object model); 08. public void update(final Object model); 09. public void delete(final Object model); 10.} [java] view plaincopy 01.package com.mvc.dao; 02...

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

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

    jqgrid分页参数

    ### jqGrid 分页参数详解 #### 一、引言 在Web应用开发中,数据展示是必不可少的一个环节。为了提供更好的用户体验以及优化服务器资源利用,前端分页技术得到了广泛的应用。其中,`jqGrid`是一款非常受欢迎的jQuery...

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

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

    http请求工具类HttpClientUtil,get,post请求(csdn)————程序.pdf

    - 如果需要发送 JSON 数据,可以使用 `StringEntity`,设置合适的 Content-Type,如 `ContentType.APPLICATION_JSON`,然后将其设置为请求实体。 5. **处理响应**: 在执行请求后,通常需要处理 `HttpResponse`。...

    jQuery ajax、post、get、json格式传递数据例子

    当使用jQuery的Ajax方法与后端进行数据交互时,通常会涉及到HTTP头的设置,如`contentType`(指定发送数据的格式)和`dataType`(期望服务器返回的数据类型)。在处理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) } });

    关于applicationx-www-form-urlencoded等字符编码的解释说明

    这种编码格式是标准的编码格式,广泛应用于Web开发中,特别是在开发Restful Web service时尤其重要。 在HTML表单中,Enctype属性指定将数据回发到服务器时浏览器使用的编码类型。application/x-www-form-urlencoded...

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

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

Global site tag (gtag.js) - Google Analytics