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

ルート オブジェクトの Getter がありませんString jsonResponse;

AND ルート オブジェクトは、メソッド変数ではなく、クラス変数である必要があります。

于 2013-11-05T09:40:59.173 に答える