【发布时间】:2015-01-11 23:02:28
【问题描述】:
我正在尝试从 struts2 响应中填充 ExtJS4 中的组合框。但是没有填充这些值,并且组合框为空。我还尝试对 json 数据进行硬编码,但仍然无法正常工作。当我尝试将 actionName 附加到 URL 并执行操作时,没有错误,我可以看到 json 数据..
"{'rows': [{'id': '1','name': 'Google' }, {'id': '2','name': 'Microsoft' }, {'id': '3','name': 'Yahoo' }]} "
我有一个表单面板,在表单面板中我有一个这样的组合框项目:
{
name: 'bName',
xtype: 'combobox',
displayField: 'name',
valueField: 'id',
store: new Ext.data.Store({
fields: [{id: 'id'}, {name: 'name'}],
autoLoad: true,
proxy: {
type: 'ajax',
url: 'getBookList',
reader: {
type: 'json',
root: 'rows'
}
}
})
}
这是我的 struts.xml。我已经使用了json-plugin,并且使用了参数标签,以便按原样发送json,
<package name="ELM29" extends="struts-default,json-default">
<action name="getBookList" class="com.test.elm.action.Data"
method="getBookList">
<result type="json">
<param name="root">data</param>
</result>
</action>
</package>
然后我有 Book.java,其中我有变量的 getter setter,包括作为变量的数据和 getBookList 方法,我只是为数据赋值并返回成功。
public String getBookList(){
data= "{'rows': [{'id':'1','name':'Google'},{'id':'2','name':'Microsoft'},{'id':'3','name':'Yahoo'}]} ";
return ActionSupport.SUCCESS;
}
我也尝试使用Ext.data.JsonStore,但没有帮助。问题是由于商店还是组合框引起的?代码有什么问题?
【问题讨论】:
标签: json extjs struts2 extjs4 extjs4.2