【问题标题】:Retrieving JSON from java class using Struts2使用 Struts2 从 java 类中检索 JSON
【发布时间】:2013-11-05 06:25:40
【问题描述】:

我在通过 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 方法。请让我知道正确的继续方法。 感谢您的帮助!

【问题讨论】:

  • 门户环境?你不认为这是相关信息吗?无论如何尝试使用&lt;s:url&gt;标签。
  • 这个动作是否被调用了?如果是,那么您收到什么回复? (您可以在开发者工具中查看或直接在浏览器中点击 url)

标签: java jquery json struts2


【解决方案1】:

您缺少根对象 String jsonResponse; 的 Getter

并且您的根对象必须是类变量,而不是方法变量。

【讨论】:

  • 查看jsonResponse提供的代码是方法变量。 :)
  • 奇怪的缩进和缺少的类名骗了我:)
猜你喜欢
  • 1970-01-01
  • 2022-01-23
  • 1970-01-01
  • 2010-09-18
  • 2013-05-16
  • 1970-01-01
  • 2015-10-13
  • 2021-08-16
  • 1970-01-01
相关资源
最近更新 更多