struts2返回json数据的问题,请教。

X654054668 2011-10-22 03:00:07
不知道是哪里写错了,总是不能正常的接受到数据

package test;

import java.util.ArrayList;
import java.util.List;

import net.sf.json.JSONArray;

import com.opensymphony.xwork2.ActionSupport;



public class TestAction extends ActionSupport{

private String josnStr;
public String test(){
List<String> list=new ArrayList<String>();
list.add("1");
list.add("1");
JSONArray json=JSONArray.fromObject(list);
josnStr=json.toString();
System.out.println("执行"+josnStr);
return this.SUCCESS;

}


//----------------------------------------------

public String getJosnStr() {
return josnStr;
}
public void setJosnStr(String josnStr) {
this.josnStr = josnStr;
}
}


这个是 action代码
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<constant name="struts.enable.DynamicMethodInvocation" value="false" />
<constant name="struts.devMode" value="false" />

<package name="json" namespace="/" extends="json-default">
<action name="test" class="test.TestAction" method="test">
<result type="json"/>
</action>
</package>
</struts>
配置文件,返回 JSON格式,下面JSP页面获取。
<%@ page pageEncoding="GBK" import="java.util.*"%>
<html>
<head>
<script type="text/javascript" src="jquery.js"></script>

<script type="text/javascript">
function test()
{

$.ajax(
url:'test.action',
type:'post',
dataType:'json',
success:function(data){
alert(data);
}
error:function(){
alert('errot');
}
);
}
</script>
</head>

<body>
<a href="javascript:;" onclick="test();">测试</a>
</body>
</html>

不知道是哪里写错了,请各位大侠帮忙解决下,这个地方不明白,我的项目没办法继续下去了。
...全文
820 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
chaluhe003 2011-10-23
  • 打赏
  • 举报
回复
要自己想办法解决撒 首先 你把System.out.println("执行"+josnStr); 返回的json字符串已经输出到了控制台了 然后 你在js 中 获取 回调函数的data 参数信息 你要对着你的输出得json数据 alert 就是写data.x.x这样就可以了 建议用 firefox浏览器和firebug 你一看返回的数据格式 就清楚了
  • 打赏
  • 举报
回复
我是用out.print(json)把json输出出去的,然后return null,而不是return "success"; 也没有type="json"。
然后我用$.getJSON("xx.action",function(data)
{

});来获取json
pl3121605999 2011-10-22
  • 打赏
  • 举报
回复

public class TestAction extends ActionSupport{

private List<String> list;
public String test(){
list=new ArrayList<String>();
list.add("1");
list.add("1");
return this.SUCCESS;

}
list set and get 方法

这样试试。。。你既然用了struts2的json插件。。那么就不需要自己去手动把list转成json对象、、交给struts2就行

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧