关于struts2向Extjs3传json对象的问题

Bisle 发布于 2011/06/08 05:08
阅读 831
收藏 0

程序过程就像标题里提到的那样,由struts2的action向前台extjs传json对象,但是在具体应用过程中遇到了很多问题,其中最让我头疼的就是在ext中怎样定义一个Ext.data.Store对象?

我的struts2的action中除了execute以外只有两个String,String a和String b,以及它们各自的setter和getter,请问这样的一个json对象怎样定义相应的Ext.data.Store?

我自己试着写了一个,但好像不对,不过还是拿出来请教一下各位:javascript代码如下:

	var store = new Ext.data.Store({
		proxy : new Ext.data.HttpProxy({
			url : 'showAdmin.action',
			method : 'get'
		}),
		reader : new Ext.data.JsonReader({
			root : 'testBeans'
		// ,
		// id : 'id'
		}, [ {
			name : 'a',
			mapping : 'a',
			type : 'string'
		}, {
			name : 'b',
			mapping : 'b',
			type : 'string'
		} ])
	});

struts2的xml配置文件定义如下:

<action name="showAdmin" class="showAdmin">
    <result type="json"/>
</action>
spring的xml配置文件定义如下:

<bean name="showAdmin" class="struts.action.ShowAdmin" scope="prototype">
</bean>

struts2的action类定义如下:

public class ShowAdmin extends ActionSupport {

	List<TestBean> testBeans=new ArrayList<TestBean>();
	public String execute()
	{
		TestBean t1=new TestBean();
		TestBean t2=new TestBean();
		t1.setA("1A");
		t1.setB("1B");
		t2.setA("2A");
		t2.setB("2B");
		testBeans.add(t1);
		testBeans.add(t2);
		return SUCCESS;
	}
	
	@JSON(name ="TestBean")
	public List<TestBean> getTestBeans() {
		return testBeans;
	}
	public void setTestBeans(List<TestBean> testBeans) {
		this.testBeans = testBeans;
	}
	
	
}
TestBean定义如下:

public class TestBean {

	private String a;
	private String b;
	public String getA() {
		return a;
	}
	public void setA(String a) {
		this.a = a;
	}
	public String getB() {
		return b;
	}
	public void setB(String b) {
		this.b = b;
	}
}
请问各位高手问题何在?急求。。。多谢了
加载中
0
Andre.Z
Andre.Z
你action的输出是怎么样的json啊?照你的js,要是:

{testBeans:[{'a':'1A','b':'1B'},{'a':'2A','b':'2B'}]}

store对象很好定义啊,对照上面的json,很好写的。

直接访问下你的action,看看出什么,我就不去测试了,好久不用这些个框架了。

0
Bisle
Bisle

引用来自“*Andre*”的答案

你action的输出是怎么样的json啊?照你的js,要是:

{testBeans:[{'a':'1A','b':'1B'},{'a':'2A','b':'2B'}]}

store对象很好定义啊,对照上面的json,很好写的。

直接访问下你的action,看看出什么,我就不去测试了,好久不用这些个框架了。

我的action输出是:{"TestBean":[{"a":"1A","b":"1B"},{"a":"2A","b":"2B"}]}

确实不太懂Store的写法,求指点

0
Bisle
Bisle

引用来自“*Andre*”的答案

你action的输出是怎么样的json啊?照你的js,要是:

{testBeans:[{'a':'1A','b':'1B'},{'a':'2A','b':'2B'}]}

store对象很好定义啊,对照上面的json,很好写的。

直接访问下你的action,看看出什么,我就不去测试了,好久不用这些个框架了。

已经解决了,其实就是把testBeans改成TestBean就ok了,呵呵,确实要看着json改Store,多谢高手!!
返回顶部
顶部