这是action
public String staffListQuery() {
logger.debug("staffListQuery");
if (pageNo == CodeConstants.PAGE_DEFU) {
pageNo = CodeConstants.PAGENO_INIT;
}
if (pageSize == CodeConstants.PAGE_DEFU) {
pageSize = CodeConstants.PAGESIZE_INIT;
}
try {
String operatorCode = (String) getSession()
.getAttribute("UserCode");
Page page = staffManageService.queryStaffRecord(
staffManageCondition, pageNo, pageSize, operatorCode,
exportType);
/** 将结果值以JSON方式读取 */
writeJSONData(page, "PERSONID","PERSONNAME","COMNAME","TEAMNAME","VALIDSTATUS","VERIFYSTATUS","OPERATETIMES","OPERATETYPE","VERIFYTYPE");
} catch (Exception e) {
this.writeJSONMsg(e.getMessage());
}
// System.out.println(JSONArray.fromObject(writeJSONData.jsonObject));
return null;
}
这是json
public void writeJSONData(Page page, String... args) {
try {
Assert.notEmpty(args);
List dataList = new Vector();
List list = page.getResult();
int size = args.length;
for (Iterator iter = list.iterator(); iter.hasNext(); ) {
Object element = iter.next();
Map dataMap = new HashMap(size);
for (int i = 0; i < size; i++) {
Object value = null;
if (args[i].indexOf('.') > -1) {
String[] arrArg = StringUtils.split(args[i], '.');
value = element;
for (int j = 0; j < arrArg.length - 1; j++) {
value = PropertyUtils.getProperty(value, arrArg[j]);
if(value != null){
value = PropertyUtils.getProperty(value,arrArg[(j + 1)]);
}
}
} else {
value = PropertyUtils.getProperty(element, args[i]);
}
dataMap.put(args[i], fixValueForJSON(value));
}
dataList.add(dataMap);
}
JSONObject jsonObject = new JSONObject();
jsonObject.put("totalRecords", page.getTotalCount());
jsonObject.put("data", JSONArray.fromObject(dataList));
renderHtml(jsonObject.toString());
} catch (Exception e) {
e.printStackTrace();
writeJSONMsg(e.getMessage());
}
}
JSON有值
这里没值
http://www.cnblogs.com/zyw-205520/p/3665240.html
简单看了一下你的代码, 在执行bug的过程中,能够展现出内容信息, 但是当将bug点释放之后, 得到的json显示信息与你预期的不同。
看你的代码看不出问题, 我觉得应该是你的项目中请求不仅执行了这一次, 应该是后续有重复执行,并覆盖了本次的查询结果,
请你检查本action中方法的触发方式,是不是有重复提交或者ajax等的存在,导致数据覆盖的出现;