急急急 java struts2.json.JSONException怎么解决
org.apache.struts2.json.JSONException: org.apache.struts2.json.JSONException: org.apache.struts2.json.JSONException: org.apache.struts2.json.JSONException: org.apache.struts2.json.JSONException: org.apache.struts2.json.JSONException: org.apache.struts2.json.JSONException: org.apache.struts2.json.JSONException: org.apache.struts2.json.JSONException: org.apache.struts2.json.JSONException: org.apache.struts2.json.JSONException: java.lang.reflect.InvocationTargetException
org.apache.struts2.json.JSONWriter.bean(JSONWriter.java:243)
org.apache.struts2.json.JSONWriter.process(JSONWriter.java:165)
org.apache.struts2.json.JSONWriter.value(JSONWriter.java:131)
org.apache.struts2.json.JSONWriter.write(JSONWriter.java:99)
org.apache.struts2.json.JSONUtil.serialize(JSONUtil.java:112)
org.apache.struts2.json.JSONResult.execute(JSONResult.java:198)
com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:362)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:266)
com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:165)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:252)
org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:122)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:195)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept
报这样的错用ext写的从数据库读取数据
action
List<Employeeinfo> elist;
RoleInfoBiz roleInfoBiz;
String json;
Employeeinfo employeeinfo;
public String allEmployeeinfo() {
elist=roleInfoBiz.allEmp();
String result="[";
for (int i=0;i<elist.size();i++) {
result+="{employeeId:"+elist.get(i).getEmployeeId()+"',employeeName:'"+elist.get(i).getEmployeeName()+"',gender'"+elist.get(i).getGender()+"',tbUser:'"+elist.get(i).getTbUser().getRole().getRoleName()+"',departinfo:'"+elist.get(i).getDepartinfo().getDepartName()+
"',phone:'"+elist.get(i).getPhone()+"',qq:'"+elist.get(i).getQq()+"',email:'"+elist.get(i).getEmail()+"',address:'"+elist.get(i).getAddress()+"}";
if (i!=elist.size()-1){
result+=",";
}
}
result+="]";
json="{\"success\":true,\"elist\":"+result+"}";
System.out.println(json);
return SUCCESS;
}
public List<Employeeinfo> getElist() {
return elist;
}
public void setElist(List<Employeeinfo> elist) {
this.elist = elist;
}
public RoleInfoBiz getRoleInfoBiz() {
return roleInfoBiz;
}
public void setRoleInfoBiz(RoleInfoBiz roleInfoBiz) {
this.roleInfoBiz = roleInfoBiz;
}
@JSON(serialize=false)
public String getJson() {
return json;
}
public void setJson(String json) {
this.json = json;
}
public Employeeinfo getEmployeeinfo() {
return employeeinfo;
}
public void setEmployeeinfo(Employeeinfo employeeinfo) {
this.employeeinfo = employeeinfo;
}
struts
<package name="em" namespace="/" extends="json-default">
<action name="employee" class="EmployeeInfoAll">
<result name="success" type="json">MyRoleInfo.jsp</result>
</action>
</package>
applicationcontext;
<bean id="userrolebiz" class="biz.impl.UserRolebiz" autowire="byType">
</bean>
<bean id="EmployeeInfoAll" class="action.EmployeeInfoAll" scope="prototype" autowire="byType"></bean>
很急谢谢各位
[解决办法]
应该是json字符串拼接错了,建议用JSONArray.fromObject(list).toString()这个函数,网上搜一下用法把,要导入几个jar包。
[解决办法]
[解决办法]
使用json-lib-2.2.3-jdk15.jar把查询出来的自动转换成JSON对象
返回结果应该这么写<result type="json" name="updateTypeInfo">
<param name="includeProperties">message</param>
</result>或者
<result type="json" name="loadTypeInforToPaixu">
<param name="root">extJsPageBean</param>
</result>