我在写一个ssh的项目,在页面有一个点击事件通过ajax提交到action 处理后解析返回到页面。为什么一直是

haifujiang 发布于 2017/03/17 09:48
阅读 286
收藏 0
SSH

 

这个错误,看了一天了不知道为何
具体代码action // 查询某个id的地名信息
public String findPlaceInfo() {
// 获取传过来的id
HttpServletRequest request = ServletActionContext.getRequest();
HttpServletResponse response = ServletActionContext.getResponse();
try {
// 设置读取编码
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
String idString = request.getParameter("placeInfo_id").trim();
System.out.println(idString);
int id = Integer.parseInt(idString);
// 将读取的信息进行获取
List<Placeinfo> placeinfo = placeInfoService.findByIdInfo(id);
// 将获取的信息进行封装
List placeinfoList = new ArrayList();

for (Placeinfo place : placeinfo) {
placeinfoList.add(place.getPlaceinfo());
}
System.out.println(placeinfoList);

JSONArray sqlString=new JSONArray();
sqlString = JSONArray.fromObject(placeinfoList);

response.setContentType("text/html;charset=UTF-8");
response.getWriter().write(sqlString.toString());

System.out.println(sqlString);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}

struct 2
</package>
<!--json返回 -->
<package name="struct2" namespace="/" extends="json-default">
<action name="queryPlaceInfo" class="placeInfoAction" method="findPlaceInfo">
</action>
</package>

ajax

$.ajax({
type : "POST",
url : url,
data : {},
dataType : "JSON",
success : function(data) {
// tanchu
alert(data);
// data为后台返回的Json信息
for (var n = 0; n < data.length; n++) {
var placeinfo = data[n];
$("#placeInfoshow").append("<p >" + placeinfo + "</p>");
}
}
})
}

真是不知道如何解决了,跪求大神解析

错误

There is a cycle in the hierarchy!
at net.sf.json.util.CycleDetectionStrategy$StrictCycleDetectionStrategy.handleRepeatedReferenceAsArray(CycleDetectionStrategy.java:69)

加载中
0
MnameHZJ
MnameHZJ
看错误应该是,Placeinfo类里面有循环引用的关系,就是说,A引用B,B也引用了A。 补充一点,你后台response设置的contentType是html,页面是接受是需要json。到时候会触发,ajax的error方法
返回顶部
顶部