在Struts 2中从Java获取JSON对象 [英] Getting JSON object from Java in Struts 2

查看:181
本文介绍了在Struts 2中从Java获取JSON对象的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试使用 getJSON jQuery方法从java服务器获取响应文本。虽然,当java类是简单格式时,我可以得到响应数据( String List Map ),使用其他java对象时无法获得成功数据。

I am trying to get response text from java server using getJSON jQuery method. Although, I can get response data when the java class is simple format (String, List and Map), I could not get success data when using other java object.

以下Java类是简单类型并获取访问成功数据和工作

the following Java class is simple type and get access success data and work

package com.awitd.framework.action;

import com.opensymphony.xwork2.Action;

public class getAllJson implements Action{

private String data;

public String getData() {
    return data;
}

public void setData(String data) {
    this.data = data;
}

public String execute() {
    System.out.println(" this is from action");
    data = "[";
            data += "{";
            data += "\"objid\":\"" + "1" + "\",";
            data += "\"id\":\"" + "1" + "\",\"name\":\"" + "name" + "\"";
            data += "}"; System.out.println("data " + data);

    data += "]";

    return SUCCESS;
}


}

以下java class正在使用其他java对象并且不返回成功数据

the following java class is using other java object and doesn't return success data

package com.awitd.framework.action;

import java.util.List;

import com.opensymphony.xwork2.Action;
import com.awitd.framework.entity.Employee;
import com.awitd.framework.entity.Profile;
import com.awitd.framework.service.EmployeeService;
public class getAllJson implements Action{

private String data;

private EmployeeService employeeService;



private List<Employee> employeeList;
private Employee employee;
private Profile profile;
public String getData() {
    return data;
}

public void setData(String data) {
    this.data = data;
}

public EmployeeService getEmployeeService() {
    return employeeService;
}

public void setEmployeeService(EmployeeService employeeService) {
    this.employeeService = employeeService;
}

public String execute() {
    System.out.println(" this is from action");
    data = "[";
            /*data += "{";
            data += "\"objid\":\"" + "1" + "\",";
            data += "\"id\":\"" + "1" + "\",\"name\":\"" + "name" + "\"";
            data += "}"; System.out.println("data " + data);*/



    employeeList = employeeService.getAll();    
    System.out.println("size........"+employeeList.size()); 
    if (!employeeList.isEmpty()) {
        for (int i=0; i<employeeList.size(); i++) {
            employee = employeeList.get(i);
            profile = employee.getProfile();
            data += "{";
            data += "\"objid\":\"" + employee.getEmployeeId() + "\",";
            data += "\"id\":\"" + employee.getId() + "\",\"name\":\"" + employee.getName() + "\"";
            data += ",\"dob\":\"" + profile.getDob() + "\",\"sex\":\"" + profile.getSex() + "\"";
            data += ",\"email\":\"" + profile.getEmail() + "\",\"workstart\":\"" + profile.getWorkstart() + "\"";
            data += ",\"study\":\"" + profile.getStudySub() + "\",\"jplevel\":\"" + profile.getJpLevel() + "\"";
            data += ",\"jpgroup\":\"" + profile.getJpGroup() + "\",\"remark\":\"" + profile.getRemark() + "\"";
            data += "}";
            if (!(i==employeeList.size()-1))
                data += ","; 
        }
    }
    data += "]";




    return SUCCESS;
}


 }

出现此错误:

No existing transaction found for transaction marked with propagation 'mandatory'

java.lang.reflect.InvocationTargetException    
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: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)
com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:367)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:271)


推荐答案

尝试以下代码,它应该修复错误

Try the following code, it should fix the error

data += "{";
data += "\"objid\":\"" + employee.getEmployeeId() + "\",";
data += "\"id\":\"" + employee.getId() + "\",\"name\":\"" + employee.getName() + "\",";
data += ",\"dob\":\"" + profile.getDob() + "\",\"sex\":\"" + profile.getSex() + "\",";
data += ",\"email\":\"" + profile.getEmail() + "\",\"workstart\":\"" + profile.getWorkstart() + "\",";
data += ",\"study\":\"" + profile.getStudySub() + "\",\"jplevel\":\"" + profile.getJpLevel() + "\",";
data += ",\"jpgroup\":\"" + profile.getJpGroup() + "\",\"remark\":\"" + profile.getRemark() + "\"";
data += "}";

这篇关于在Struts 2中从Java获取JSON对象的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆