因爲只是涉及到上海市的級聯選擇,所以,我採取的方式是直接將數據在action裏面封裝了,並沒有解析xml文件,然後通過json將數據從後臺傳至jsp頁面展示。
- 下面來看action ,數據純手工啊~~方法笨了點,但是好歹實現了
package com.craftsman.ssm.action;
import java.util.ArrayList;
import java.util.List;
import org.springframework.stereotype.Controller;
import com.craftsman.ssm.bean.CityBean;
@Controller("citySelectAction")
public class CitySelectAction {
private List<CityBean> cityList;//上海市區","街道的彙總
//private List<String> districtList;//上海所有市區
private String district;//上海市區名稱
private String[] streets;//上海市的街道
public String district() {
setCityList(initCityBean());
return "districtjson";
}
public String street() {
for(CityBean cb:cityList){
if( cb.getDistrict().equals(district)){
streets=cb.getStreet();
}
}
return "streetjson";
}
public String getDistrict() {
return district;
}
public void setDistrict(String district) {
this.district = district;
}
private List<CityBean> initCityBean(){
List<CityBean> listCityBean=new ArrayList<CityBean>();
String[] districts = { "黃浦區", "靜安區","普陀區","楊浦區","南匯區","嘉定區","徐彙區","奉賢區","閘北區","盧灣區","長寧區","松江區","閔行區","青浦區","金山區","寶山區","虹口區","浦東新區","崇明縣" };
String[] huangpu = { "外灘街道", "人民廣場街道", "南京東路街道", "金陵東路街道", "半淞園路街道","小東門街道", "老西門街道", "豫園街道" };
String[] jingan = { "江寧路街道","靜安寺街道","南京西路街道","曹家渡街道","石門二路街道" };
String[] putuo={"長壽路街道","曹楊新村街道","長風新村街道","宜川路街道","甘泉路街道","石泉路街道"};
String[] yangpu = {"定海路街道","大橋街道","平涼路街道","江浦路街道","控江路街道","殷行街道","長白新村街道","延吉新村街道","五角場街道","四平路街道","新江灣城街道","五角場鎮" };
String[] nanhui={"申港街道","惠南鎮","新場鎮","大團鎮","周浦鎮","航頭鎮","蘆潮港鎮","康橋鎮","宣橋鎮","六竈鎮","祝橋鎮","泥城鎮","書院鎮","萬祥鎮","老港鎮"};
String[] jiading = {"嘉定鎮街道","新成路街道","真新新村街道","馬陸鎮","南翔鎮","江橋鎮","黃渡鎮","安亭鎮","外岡鎮","徐行鎮","華亭鎮 ","金山區"," 石化街道" };
String[] xuhui={"湖南路街道","天平路街道","楓林路街道","徐家彙街道","斜土路街道","長橋路街道","漕河涇街道","康健新村街道","虹梅路街道","田林路街道","凌雲路街道","龍華街道華涇鎮"};
String[] fengxian = { "南橋鎮","莊行鎮","金匯鎮","柘林鎮","青村鎮","奉城鎮","四團鎮","海灣鎮 ","南匯區"," 申港街道 "};
String[] xiabei={"天目西路街道","北站街道","寶山路街道","芷江西路街道","共和新路街道","大寧路街道","彭浦新村街道","臨汾路街道彭浦鎮"};
String[] luwan = { "打浦橋街道","淮海中路街道","瑞金二路街道","五里橋街道" };
String[] changning={"華陽路街道","新華路街道","江蘇路街道","天山路街道","周家橋街道","虹橋街道","仙霞新村街道","程家橋街道","北新涇街道","新涇鎮"};
String[] songjiang = { "岳陽街道","中山街道","永豐街道","方鬆街道九亭鎮","泗涇鎮","泖港鎮","車墩鎮","洞涇鎮","葉榭鎮","新橋鎮","石湖蕩鎮","新浜鎮","佘山鎮" };
String[] minhang = { "江川路街道","龍柏街道","古美街道","莘莊鎮","七寶鎮","浦江鎮","梅隴鎮","虹橋鎮","馬橋鎮","吳涇鎮","華漕鎮","顓橋鎮 "};
String[] qingpu={"夏陽街道","盈浦街道","香花橋街道趙巷鎮","徐涇鎮","華新鎮","重固鎮","白鶴鎮","朱家角鎮","練塘鎮","金澤鎮"};
String[] jinshan = { "石化街道楓涇鎮","朱涇鎮","亭林鎮","漕涇鎮","山陽鎮","金山衛鎮","張堰鎮","廊下鎮","呂巷鎮" };
String[] baoshan={"吳淞街道","張廟街道","友誼路街道","廟行鎮","羅店鎮","大場鎮","顧村鎮","羅涇鎮","楊行鎮","月浦鎮","淞南鎮","高境鎮"};
String[] hongkou = {" 四川北路街道","提籃橋街道","新港路街道","乍浦路街道","歐陽路街道","廣中路街道","涼城新村街道","嘉興路街道","曲陽路街道","江灣鎮街道" };
String[] pudong = { "濰坊新村街道","陸家嘴街道","塘橋街道","周家渡街道","東明路街道","洋涇街道","上鋼新村街道","滬東新村街道","金楊新村街道","浦興路街道","南碼頭路街道"," 花木街道川沙新鎮","合慶鎮","曹路鎮","高東鎮","高橋鎮","高行鎮","金橋鎮","張江鎮","唐鎮","北蔡鎮","三林鎮" };
String[] chongming = { "城橋鎮","堡鎮鎮","新河鎮","廟鎮鎮","豎新鎮","向化鎮","三星鎮","港沿鎮","中興鎮","陳家鎮","綠華鎮","港西鎮","建設鎮","新村鄉","長興鄉","橫沙鄉" };
String[][] ss={huangpu,jingan,putuo, yangpu ,nanhui,jiading, xuhui,fengxian, xiabei,luwan, changning,songjiang,minhang, qingpu, jinshan, baoshan, hongkou,pudong,chongming};
for(int i = 0; i < districts.length; i++){
listCityBean.add(new CityBean(districts[i],ss[i]));
}
return listCityBean;
}
public String[] getStreets() {
return streets;
}
public void setStreets(String[] streets) {
this.streets = streets;
}
public List<CityBean> getCityList() {
return cityList;
}
public void setCityList(List<CityBean> cityList) {
this.cityList = cityList;
}
}
2.看一下struts.xml裏面的配置
<action name="citySelect_*" class="citySelectAction" method="{1}">
<result name="districtjson" type="json">
<param name="root">cityList</param>
</result>
<result name="streetjson" type="json">
<param name="root">streets</param>
</result>
</action>
注意配置文件裏面要註明將struts的Action交由spring管理
<constant name="struts.objectFactory" value="spring" />
- jsp頁面一加載就發送請求,將獲取到的市區、街道信息拼接至指定的select中
//獲取市區信息
$.post("/craftsman/citySelect_district.action", function(data) {
for (var i = 0; i < data.length; i++) {
$("#district").append(
'<option value='+data[i].district+'>' + data[i].district
+ '</option>');
$("#commondistrict").append(
'<option value='+data[i].district+'>' + data[i].district
+ '</option>');
}
for( var j=0;j<data[0].street.length;j++){
$("#street").append('<option value='+data[0].street[j]+'>'+data[0].street[j]+'</option>');
$("#commonstreet").append('<option value='+data[0].street[j]+'>'+data[0].street[j]+'</option>');
}
}, "json");
- 下面我們就可以來看一下界面上的顯示
比較簡單的mvc實現,咳咳,並沒有加入mybatis,其實可以用xml代替Action中的字符串,但是隻是涉及到小範圍的,下次項目做大了,應該會不得不做個xml解析,省市區街道級聯