因为最近要写一个用ssh+extjs4.1+jasperReports的大学物理实验预约系统,所以最近一直在学extjs4.1(目前官方最新版),extjs4.1与以前4.0版本之前的有很大的变化,所以学起来会有一点小困难,但只要你勤与看官网的文档,就会感觉很简单。废话少说了,下面讲我在整合ssh时关于json的处理,我这时写的是有关省市区多级下拉框。
首先写三个model(Province,City,Area)
public class Province {
private String provinceValue;
private String provinceName;
public String getProvinceValue() {
return provinceValue;
}
public void setProvinceValue(String provinceValue) {
this.provinceValue = provinceValue;
}
public String getProvinceName() {
return provinceName;
}
public void setProvinceName(String provinceName) {
this.provinceName = provinceName;
}
}
package com.physics.action.tools.china;
public class City {
private String cityValue;
private String cityName;
public String getCityValue() {
return cityValue;
}
public void setCityValue(String cityValue) {
this.cityValue = cityValue;
}
public String getCityName() {
return cityName;
}
public void setCityName(String cityName) {
this.cityName = cityName;
}
}
package com.physics.action.tools.china;
public class Area {
private String areaValue;
private String areaName;
public String getAreaValue() {
return areaValue;
}
public void setAreaValue(String areaValue) {
this.areaValue = areaValue;
}
public String getAreaName() {
return areaName;
}
public void setAreaName(String areaName) {
this.areaName = areaName;
}
}
我把我们国家的省市区的信息都放在xml文件里,所以在建一个xml解析文件
然后写action
配置action
<package name="china" extends="json-default" namespace="/">
<action name="province" class="com.physics.action.tools.China" method="province">
<result type="json"></result>
</action>
<action name="citys" class="com.physics.action.tools.China" method="citys">
<result type="json"></result>
</action>
<action name="areas" class="com.physics.action.tools.China" method="areas">
<result type="json"></result>
</action>
</package>
然后在js:
这里特别要注意
var store = Ext.create('Ext.data.Store', {
model : 'province',
proxy : {
type : 'ajax',
url : 'province.action',
reader : {
type : 'json',
root : 'province'
}
},
autoLoad : true,
remoteSort : true
});
对应的root和model,还有model里对于的value值,否则会不显示。
如果不显示可以使用简单的方法检查下,在网页里输入相应的action,看是否正确,然后再查找具体原因。
我把的我效果图也发一张上来吧!
有问题可以联系我:wu560130911@163.com