【发布时间】:2014-07-29 22:24:55
【问题描述】:
**
更新代码
**
我的 Javascript/Ajax 代码:
$(function() {
$("#create_obd").bind("click", function(event) {
var soNumber = [];
$('#sales_order_lineItems input[type=checkbox]:checked').each(function(index) {
var row = $(this).parent().parent();
var rowcells = row.find('td');
var soRowData = {
so_number:rowcells[1].innerText
};
soNumber.push(soRowData);
}); //loop ends
var soNumbers = JSON.stringify(soNumber);
alert(soNumbers);
$.ajax({
type: "POST",
url: server_ip_address + "/createobdaction",
data: soNumbers,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(data){alert(data);},
failure: function(errMsg) {
alert(errMsg);
}
});
});
});
我的 Java 代码:
package com.app.action;
import java.util.List;
import com.app.bean.SONumber;
public class CreateOBDAction {
private List<SONumber> soNumbers;
public String createOBD() {
System.out.println(soNumbers.size());
return "jsonCreateOBDSuccess";
}
public List<SONumber> getSoNumbers() {
System.out.println("Getter................");
return soNumbers;
}
public void setSoNumbers(List<SONumber> soNumbers) {
System.out.println("Setter............");
this.soNumbers = soNumbers;
}
}
Bean 类
package com.app.bean;
public class SONumber {
String soNumber;
public String getSoNumber() {
return soNumber;
}
public void setSoNumber(String soNumber) {
this.soNumber = soNumber;
}
}
Struts.xml
<action name="createobdaction" class="com.app.action.CreateOBDAction"
method="createOBD">
<interceptor-ref name="defaultStack"/>
<interceptor-ref name="json">
<param name="enableSMD">true</param>
</interceptor-ref>
<result name="jsonCreateOBDSuccess" type="json" />
</action>
例外
15:32:00,092 错误 JSONInterceptor:34 - 无法反序列化 JSON 来自请求的对象 15:32:00,093 DEBUG Dispatcher:80 - 异常 在处理请求期间发生:无法反序列化 JSON 对象 来自请求 org.apache.struts2.json.JSONException: 无法 从请求中反序列化 JSON 对象 org.apache.struts2.json.JSONInterceptor.intercept(JSONInterceptor.java:117)
【问题讨论】:
标签: javascript ajax json struts2