使用Struts2从java类检索JSON
我在通过struts2检索Json数据时遇到问题。下面是我的代码: struts.xml使用Struts2从java类检索JSON,java,jquery,json,struts2,Java,Jquery,Json,Struts2,我在通过struts2检索Json数据时遇到问题。下面是我的代码: struts.xml <struts> <package name="default" extends="struts-default,json-default"> <action name="getMenuInfo" class="test.AppTaskConfigDAOImpl" method="getJsonData"> <result type=
<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>
没有显示任何警报消息。我正在HTML页面上显示警报。我正在尝试调试,但它甚至没有进入java方法。请让我知道正确的操作方法。
谢谢你的帮助 您缺少根对象的Getter
字符串jsonResponse代码>
根对象必须是类变量,而不是方法变量。Portal环境?你不认为这是相关信息吗?无论如何,尝试使用
标记。是否调用了该操作?如果是,你会得到什么样的回应?(您可以签入开发者工具或直接点击浏览器中的url)查看提供的代码jsonResponse
是方法变量。:)奇怪的缩进和丢失的类名欺骗了我:)
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;
}
$.getJSON('getMenuInfo.action', function(json) {
$.each(json, function (key, value) {
alert(value);
});
});