一,先来一个规范,而且简单的,从后台取数据 ext //ajax combobox var proxy = new Ext.data.HttpProxy({url:'DataServlet.do'}); var record = new Ext.data.Record.create([ {name:'id',type:'int',mapping:'id'}, {name:'name',type:'string',mapping:'name'} ]); var reader = new Ext.data.JsonReader({},record); var store = new Ext.data.Store({ proxy:proxy, reader:reader }); var combobox = new Ext.form.ComboBox({ renderTo:Ext.get('d1'), store:store, emptyText:'请选择城市', mode:'remote', triggerAction:'all', displayField:'name', valueField:'id' }); servlet public class DataServlet extends HttpServlet { private static final long serialVersionUID = -3447805308742554872L; protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { resp.setContentType("text/html;charset=utf-8"); PrintWriter out = resp.getWriter(); String json = "[{id:1,name:'长沙市'},{id:2,name:'株洲市'},{id:3,name:'湘潭市'},{id:4,name:'昭阳市'},{id:5,name:'娄底市'}]"; out.write(json); out.flush(); out.close(); } protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { this.doGet(req, resp); } } 二,再来一个带分页的 ext //ajax combobox 分页 var ds = new Ext.data.Store({ proxy:new Ext.data.HttpProxy({url:'PageServlet.do'}), reader:new Ext.data.JsonReader({ totalProperty:'totalProperty', root:'root' },[ {name:'id',type:'int',mapping:'id'}, {name:'name',type:'string',mapping:'name'} ]) }); var combo = new Ext.form.ComboBox({ renderTo:Ext.get('d2'), store:ds, emptyText:'请选择部门', mode:'remote', triggerAction:'all', displayField:'name', valueField:'id', pageSize:5, readOnly:true, listWidth:200 }); servlet public class PageServlet extends HttpServlet { private static final long serialVersionUID = -3447805308742554872L; protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { resp.setContentType("text/html;charset=utf-8"); PrintWriter out = resp.getWriter(); int start = Integer.parseInt(req.getParameter("start")); int limit = Integer.parseInt(req.getParameter("limit")); int totalProperty = 17; int end = start + limit; if (end > totalProperty) { end = totalProperty; } String fmt = "{id:%d,name:/"%s/"}"; StringBuffer sb = new StringBuffer("{totalProperty:"); sb.append(totalProperty).append(",root:["); for (int i = start; i < end; i++) { sb.append(String.format(fmt, i, "部门" + i)); if (i < end - 1) { sb.append(","); } } sb.append("]}"); out.write(sb.toString()); out.flush(); out.close(); } protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { this.doGet(req, resp); } }