以下是错误提示代码:
org.apache.struts2.json.JSONException: java.lang.reflect.InvocationTargetException
org.apache.struts2.json.JSONWriter.bean(JSONWriter.java:246)
org.apache.struts2.json.JSONWriter.processCustom(JSONWriter.java:178)
org.apache.struts2.json.JSONWriter.process(JSONWriter.java:168)
org.apache.struts2.json.JSONWriter.value(JSONWriter.java:134)
org.apache.struts2.json.JSONWriter.write(JSONWriter.java:102)
org.apache.struts2.json.JSONUtil.serialize(JSONUtil.java:116)
org.apache.struts2.json.JSONResult.createJSONString(JSONResult.java:196)
org.apache.struts2.json.JSONResult.execute(JSONResult.java:170)
叙述:
今天使用ajax请求action,struts2配置文件中配置好了返回json格式的数据。但是无论如何都会进入ajax的error函数中。
几经调试也无法解决,我只能定位到是java文件出现了问题,但是无法得知是哪里出现的问题 因为ajax请求的方法 只有两句话 一句是定义了String变量 值是success 另一句是return 这个变量
今天被这个问题困扰了至少8小时 一天的工作时间。。。
在最后的即将下班的半小时喝下班后的接近一小时 终于找到了错误原因。
错误产生原因是:
在action中设置了非属性字段的get方法。非属性字段的意思是
private Map session;
private HttpServletRequest request;
这两个就是非属性字段 只需要在该字段的get方法中使用@JSON(seralisze=false) 即可解决 为了避免一些其他的不得知的事件发生 我最后还是把get方法删除了 只保留了该字段的set方法! 今记此博文留下印记供日后不再犯!
特别感谢一下小伙伴 没有他的帮助我可能现在依然还在困惑中,并且可能现在还没准备下班
他的名字就叫博文 所以在此就不打“马赛克”了
特别鸣谢!