HTML Tags:
< input ID = "Province" name = "Province" ></ Li > < input ID = "City" name = "City" type= "text"></li>
JS files that need to be introduced:
<src= "Js/jquery.min.js"></script> <src= "Js/jquery-ui.min.js"></script>
JavaScript code on the page
<Script> varURL= "<%=servlet.getpath ()%>"; varlastxhr; $("#province"). AutoComplete ({minLength:1, Source:function(Request, response) {var Term=Request.term; LASTXHR=$.getjson (URL+"? beanname=provincedata", request,function(data, status, XHR) {if(XHR===lastxhr) {Response ($.grep (data,function(item) {if(Item.indexof (request.term)!=-1)returnitem; }) ); } }); }, select:function(event, UI) {$ ("#city"). AutoComplete ({minLength:1, Source:function(request1,response1) {var Term=Request1.term; $.getjson (URL+"? beanname=citydata&province="+Ui.item.value,request1,function(DATA1,STATUS1,XHR1) {response1 ($.grep (data1,function(item) {if(Item.indexof (request1.term)!=-1)returnitem; })); }); } }); } });</Script>
Java code on the server side:
@BeanDef (value= "Provincedata", Scope=prototypescope.class) Public StaticObject provincedata (@BeanRef provinceservice provinceservice)throwsexception{List<Province> provinces = provinceservice.getprovincebyname (NewString ("")); List<String> NameList =NewArraylist<string>(); for(province province:provinces) {Namelist.add (Province.getname ()); } Jsonmodel Model=NewJsonmodel (NameList); returnmodel; } @BeanDef (Value= "Citydata", Scope=prototypescope.class) Public StaticObject Citydata (@Param ("Province") String Province, @BeanRef provinceservice provinceservice, @BeanRef cityservice cityservice)
throwsexception{System.out.println (province); List<Province> provinces =Provinceservice.getprovincebyname (province); List<String> NameList =NewArraylist<string>(); if(Provinces! =NULL&& provinces.size () ==1) {List<City> cities = Cityservice.getcitybyprovinceid (Provinces.get (0). GetId ()); for(city city:cities) {Namelist.add (City.getname ()); } }Else{Namelist.add (""); } Jsonmodel Model=NewJsonmodel (NameList); System.out.println (Model.tostring ()); returnmodel; }