日期:2014-05-18  浏览次数:20725 次

struts无法返回返回json数据

所有属性都有getter和setter


后台执行没有问题,都能打印

这是struts.xml配置文件,

这是jquery代码。但是一直得不到值。
最后打印出来的
$("#msg").html(obj.name+"***"+obj.age+"***"+obj.address);
undefined***undefined***undefined
意思是没有数据返回。具体要怎么改?
求解呀~~~~~~~~~~~~~
servlet返回数据使用response.write()。但是SSH好像有一种方法不需要这样。求解答
------解决方案--------------------
拿不到值,应该是strut.xml里的配置问题,你的响应就没有拿到。
我用struts操作JSON从不这样写,直接用流把Json字符串write到前台,return null,struts.xml只用写个空action就Ok了
------解决方案--------------------
你的dataType类型不应该写成时json码
------解决方案--------------------
在浏览器上直接访问getAjax,看看有没有json数据,如果有,那么就是js的问题,如果没有,那就是action的问题,先找到问题所在,再就是考虑一下三楼的方法。
------解决方案--------------------
浏览器上直接访问getAjax
------解决方案--------------------
m是对象,没有转换为json类型,也就是没有转换为字符串。str = JSONObject.fromObject(m); <param name="root">str</param>
------解决方案--------------------
首先:为什反要采用strut2的方式返回json数据?谁告诉你不能用response.write()了?
其次:你为什么要不自已组装json呢?我都是用JSONObject来自已组装的!
以下就是我返回给调用者数据时使用的方法!
protected void sendResponseData(String responseData){
PrintWriter out = null;
try{
out = getResponse().getWriter();
out.print(responseData);
logger.info("[responseData] = "+responseData);
} catch(IOException ex){
logger.error("sendResponseData IOException:"+ex.getMessage());
} finally{
if(null != out) out.close();
}
}

------解决方案--------------------
你打印一下从后台服务器返回的数据看一下
------解决方案--------------------
不要用alert
用console.log(result);
------解决方案--------------------
引用:
拿不到值,应该是strut.xml里的配置问题,你的响应就没有拿到。
我用struts操作JSON从不这样写,直接用流把Json字符串write到前台,return null,struts.xml只用写个空action就Ok了

同理~~
------解决方案--------------------
你不用JSONObject,JSONArray,你现在是返回简单的对象,可以不用,以后如果要返回的数据很复杂,你就不得不用了!用第三方的东西,没jar包怎么行?
action里返回success肯定是错误的,你既然要把数据返回给前台,那么你就用write,这样也可以把action里的方法改为void,从而不需要返回null
------解决方案--------------------
加我QQ619066780.我晚上回去帮你弄下,你可以尝试下,直接用out去返回.
------解决方案--------------------
你的jquery请求里,dataType应该写成json啊。