日期:2014-05-17  浏览次数:20811 次

关于struts1中获取ajax返回值 在线等高手解答 急~
我先把ajax和java部分源码贴上来
ajax源码

function getReq(num){
 $.ajax({
url: "<%=request.getContextPath() %>/getAccountBlogic.do",
data: {account: num},
type: "POST",
dataType: "Object",
async: false,
cache: false,
beforeSend: function() {
},
success: function(data) {
alert("查看数据1");
alert(data);


},
error:function(xhr){
alert(xhr.status);
            alert(xhr.readyStatus());

},
complete: function() {
}
});
}


下面是java源码


@Override
public BLogicResult execute(Object params) {
// TODO Auto-generated method stub
BLogicResult result = new BLogicResult();
TcpjentryInput tcinput=(TcpjentryInput) params;
System.out.println(tcinput.getAccount());
tcinput.setAccountName("234");
tcinput.setAvailableBalance(new BigDecimal(234555555));
result.setResultObject(tcinput);
result.setResultString("");
return result;
}



bloigc-io.xml 传值部分的源码为:


<!-- 获取账号信息start -->
<action path="/getAccountBlogic">
<blogic-params bean-name="poc.dto.TcpjentryInput">
<set-property blogic-property="account" property="account"
source="form" />
</blogic-params>
<blogic-result>
<set-property blogic-property="accountName" property="accountName"
dest="request" />
<set-property blogic-property="availableBalance" property="availableBalance"
dest="request" />
</blogic-result>
</action>
<!-- 获取账号信息end -->



前台页面能将值传入后台blogic  但是ajax无法接收blogic返回值是怎么回事额?
ajax struts1 java

------解决方案--------------------
data: {account: num},
断点调试一下,看看到这个地方 data传到后台是什么值
------解决方案--------------------
[s:debug/]能用么?试试看前台堆栈能得到什么
------解决方案--------------------
将对象序列化,或者转为JSIONObject再response写到前台。
------解决方案--------------------
OutputStream以流的形式写到前台
------解决方案--------------------
用原生servlet的飘过~
------解决方案--------------------
对象不是可序列化的,不是JSONObject对象,可以将对象手动转为json字符串。
比如对象user里有属性name和age.那么可以将user对象转为String user = "user{name:\"bree06\", age:10}";然后再用流写到画面。