0

我在通过 struts2 检索 Json 数据时遇到问题。下面是我的代码: struts.xml

  <struts>

    <package name="default"  extends="struts-default,json-default">
    <action name="getMenuInfo" class="test.AppTaskConfigDAOImpl" method="getJsonData">
    <result type="json">
    <param name="root">jsonResponse</param>
    </result>
    </action>
    </package>

    </struts> 

Java 类:

public String getJsonData() {
 {
        List<AppTaskConfig> records = null;
        String jsonResponse;
    try {
        SessionFactory sessionFactory= new AnnotationConfiguration().configure().buildSessionFactory();
        Session session=sessionFactory.openSession();
        session.beginTransaction();
        Criteria criteria=session.createCriteria(AppTaskConfig.class);
        records = (List<AppTaskConfig>)criteria.list();

        ClassMetadata classMetadata = sessionFactory.getClassMetadata(AppTaskConfig.class); 
        String [] names=classMetadata.getPropertyNames();
        session.getTransaction().commit();
        session.close();
        ConvertToJson jsondoc= new ConvertToJson();

        jsonResponse=jsondoc.toJsonArray(records, names[2]).toString();
        System.out.println(jsonResponse);

    } 
    catch (HibernateException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (JSONException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    return ActionSupport.SUCCESS;
}

JavaScript 代码: 我正在获取 jsonResponse 变量并在 Jquery 中使用它。

$.getJSON('getMenuInfo.action', function(json) {

        $.each(json, function (key, value) {
            alert(value);
        });

                                            });

没有显示警报消息。我在 HTML 页面上显示警报。我正在尝试调试,但它甚至没有进入 java 方法。请让我知道正确的继续方法。帮助表示赞赏!

4

1 回答 1

0

您缺少根对象的 GetterString jsonResponse;

并且您的根对象必须是 Class 变量,而不是 Method 变量。

于 2013-11-05T09:40:59.173 回答