我有一个JSONArray,它有2个JSONArray对象,我从Action返回到JSP。但是在JSP中,它会在从Action收到的响应中引发错误。但是我无法跟踪这个问题。请你指导。
行动守则:
try
{
Class<EmployeePojo> objClass= EmployeePojo.class;
Field[] methods = objClass.getDeclaredFields();
columnJsonArrayObject=FormatDatesAndMethods.methodsData(methods);
masterDataJsonArrayObject=new JSONArray();
String query="from EmployeePojo";
employeeList= factoryImplObject.searchByQuery(query);
if(employeeList!=null)
{
for(int j=0;j<methods.length;j++)
{
for(int i=0;i<employeeList.size();i++)
{
masterDataColumnValuesJsonObject=new JSONObject();
if((employeeList.get(i)).getWorkshopId()!=null)
{
masterDataColumnValuesJsonObject.put(""+methods[0].getName()+"", employeeList.get(i).getId());
}
else
{
masterDataColumnValuesJsonObject.put(""+methods[0].getName()+"", "");
}
if((employeeList.get(i)).getWorkshopName()!=null)
{
masterDataColumnValuesJsonObject.put(""+methods[1].getName()+"", employeeList.get(i).getName());
}
else
{
masterDataColumnValuesJsonObject.put(""+methods[1].getName()+"", "");
}
if((employeeList.get(i)).getDivId()!=null)
{
masterDataColumnValuesJsonObject.put(""+methods[2].getName()+"", employeeList.get(i).getJivId());
}
else
{
masterDataColumnValuesJsonObject.put(""+methods[2].getName()+"", "");
}
if((employeeList.get(i)).getHqId()!=null)
{
masterDataColumnValuesJsonObject.put(""+methods[3].getName()+"", employeeList.get(i).getPlace());
}
else
{
masterDataColumnValuesJsonObject.put(""+methods[3].getName()+"", "");
}
masterDataColumnValuesJsonObject.put("Old", "old");
masterDataJsonArrayObject.put(masterDataColumnValuesJsonObject);
}
break;
}
masterObject.put(0,columnJsonArrayObject);
masterObject.put(1, masterDataJsonArrayObject);
if(masterObject!=null)
{
out.write(masterObject.toString);
}
}
}
catch(Exception e)
{
}
JSP代码
function values()
{
var values=
{
url:"metaData.do?actionMethod=loadMasterData",
handleAs:'json',
content:parameter,
load: function(response)
{
alert("working");
},
error: function(data)
{
alert("Error occured while fetching data");
},
timeout: 3000,
sync: true
};
dojo.xhrPost(values);
}
问题是我没有从Action获得正确的响应,因此jsp中的错误警告弹出 获取数据时发生错误
答案 0 :(得分:1)
我没有发现您从Action To JSP返回的JSONArray对象有任何问题。尝试通过
返回JSONArrayObjectout.println(masterObject.toString);
如果仍然无效
我觉得有些垃圾数据已从Action
转移到JSP
。在您的操作方法中尝试debugging
或Printing
System.out.println
,这可能会让您知道JSONArrayObject
中从Action转移到JSP的数据。
如果还有问题? 。如果您正在使用Struts / Springs之类的框架(您应该提到的),请检查控件是否已传递给控制器类,如果控件未通过。从控件传递的XML文件(例如:Struts 2中的Struts.xml )到Action类应该存在一些问题。