正常情况下 Action都会将action里面的成员变量 转成 JSON格式 传到前台 如下:
2011-08-01 16:25:30 [ http-9080-1:45719 ] - [ DEBUG ] Executing action method = ShowActivityList
********OK***********
2011-08-01 16:25:30 [ http-9080-1:45734 ] - [ DEBUG ] [JSON]{"activityId":null,"endDate":null,"jsonTrees":[],"eActivityList":[{"activityId":0,"endDate":"2011-08-01","etingName":"活动名称---19","startDate":"2011-08-01"}],"etingName":null,"startDate":null,"totalCount":"20"}2011-08-01 16:25:30 [ http-9080-1:45734 ] - [ DEBUG ] after Locale=en_GB可是我这个Action 怎么不把 数据自动转成 JSON 啊 后台打印是:
2011-08-01 16:29:55 [ http-9080-2:7266 ] - [ DEBUG ] Executing action method = showList
****wwwwwwwwwwwwwww*****5
****wwwwwwwwwwwwwww*****
2011-08-01 16:29:55 [ http-9080-2:7313 ] - [ DEBUG ] Cyclic reference detected on SingleTableEntityPersister(com.cdcgs.paas.services.pricing.domain.ProdRule)代码如下
private List<ProdProm> prodPromsList=new ArrayList<ProdProm>();
public List<ProdProm> getProdPromsList() {
return prodPromsList;
} public void setProdPromsList(List<ProdProm> prodPromsList) {
this.prodPromsList = prodPromsList;
}
public String showList()
{
for (int i = 0; i < 5; i++) {
ProdProm prodProm=new ProdProm();
prodProm.setPromId(i);
prodProm.setPromName("测试"+i);
prodProm.setPromDesc("测试Desc"+i);
prodProm.setPromStatus(0);
prodPromsList.add(prodProm);
}
System.out.println("****wwwwwwwwwwwwwww*****"+prodPromsList.size());
System.out.println("****wwwwwwwwwwwwwww*****");
return SUCCESS;
}
action.xml如下:
<package name="web" extends="json-default" namespace="/web"> <action name="prodPromLoad" method="showList" class="prodPromAction">
<result name="success" type="json"></result>
</action>
</package>
我查了下 说什么 循环引用。我就把 各个类间的关系都去掉了 可还是这样子! 有没有那位大虾 能帮我下,谢谢!!
2011-08-01 16:25:30 [ http-9080-1:45719 ] - [ DEBUG ] Executing action method = ShowActivityList
********OK***********
2011-08-01 16:25:30 [ http-9080-1:45734 ] - [ DEBUG ] [JSON]{"activityId":null,"endDate":null,"jsonTrees":[],"eActivityList":[{"activityId":0,"endDate":"2011-08-01","etingName":"活动名称---19","startDate":"2011-08-01"}],"etingName":null,"startDate":null,"totalCount":"20"}2011-08-01 16:25:30 [ http-9080-1:45734 ] - [ DEBUG ] after Locale=en_GB可是我这个Action 怎么不把 数据自动转成 JSON 啊 后台打印是:
2011-08-01 16:29:55 [ http-9080-2:7266 ] - [ DEBUG ] Executing action method = showList
****wwwwwwwwwwwwwww*****5
****wwwwwwwwwwwwwww*****
2011-08-01 16:29:55 [ http-9080-2:7313 ] - [ DEBUG ] Cyclic reference detected on SingleTableEntityPersister(com.cdcgs.paas.services.pricing.domain.ProdRule)代码如下
private List<ProdProm> prodPromsList=new ArrayList<ProdProm>();
public List<ProdProm> getProdPromsList() {
return prodPromsList;
} public void setProdPromsList(List<ProdProm> prodPromsList) {
this.prodPromsList = prodPromsList;
}
public String showList()
{
for (int i = 0; i < 5; i++) {
ProdProm prodProm=new ProdProm();
prodProm.setPromId(i);
prodProm.setPromName("测试"+i);
prodProm.setPromDesc("测试Desc"+i);
prodProm.setPromStatus(0);
prodPromsList.add(prodProm);
}
System.out.println("****wwwwwwwwwwwwwww*****"+prodPromsList.size());
System.out.println("****wwwwwwwwwwwwwww*****");
return SUCCESS;
}
action.xml如下:
<package name="web" extends="json-default" namespace="/web"> <action name="prodPromLoad" method="showList" class="prodPromAction">
<result name="success" type="json"></result>
</action>
</package>
我查了下 说什么 循环引用。我就把 各个类间的关系都去掉了 可还是这样子! 有没有那位大虾 能帮我下,谢谢!!
return JSONObject.fromObject(obj).toString();
}
public String toJsonArray(Object array) {
return JSONArray.fromObject(array).toString();
}需要json包
2011-08-01 16:25:30 [ http-9080-1:45734 ] - [ DEBUG ] [JSON]{"activityId":null,"endDate":null,"jsonTrees":[],"eActivityList":[{"activityId":0,"endDate":"2011-08-01","etingName":"活动名称---19","startDate":"2011-08-01"}],"etingName":null,"startDate":null,"totalCount":"20"}2011-08-01 16:25:30 [ http-9080-1:45734 ] - [ DEBUG ] after Locale=en_GB
都是自动转的 都在一个项目里面的。
private List<MarkeActivity> eActivityList = new ArrayList<MarkeActivity>();
public String ShowActivityList()
{
eList();
try{
if(eActivityList!=null&&eActivityList.size()>0)
{
//JSONArray jsonArray=JSONArray.fromObject(eActivityList);
//this.jsonString = "{totalCount:"+eActivityList.size()+",results:"+jsonArray.toString()+"}";
this.totalCount=eActivityList.size()+"";
System.out.println("********OK***********");
}
}catch (Exception e) {
System.out.println(e.getMessage()); }
return SUCCESS;
}
//模拟数据
private void eList()
{
List<MarkeActivity> eList = new ArrayList<MarkeActivity>();
for (int i = 0; i < 20; i++) {
MarkeActivity eActivity=new MarkeActivity();
eActivity.setActivityId(i);
eActivity.setMarketingName("活动名称---"+i);
eActivity.setStartDate(randomString());
eActivity.setEndDate(randomString());
eList.add(eActivity);
}
eActivityList=eList;
}谢谢,大家的热心!
如:<package name="area" extends="json-default" namespace="/area">
还有 需要转换的成员变量要 生成 get方法