首页 > 代码库 > struts2 autocompleter 动态下拉菜单
struts2 autocompleter 动态下拉菜单
<struts:autocompleter>,autocompleter标签具有自动完成功能的下拉框,能根据所填写的内容筛选下拉框的内容。使用autocompleter标签必须使用Ajax主题,因为它用到了DOJO的JavaScript库。
autocompleteAjaxTag.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"%> <%@ taglib uri="/struts-tags" prefix="struts"%> <struts:head theme="ajax" /> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <body> <struts:url id="dataUrl" value=http://www.mamicode.com/"/autocompleteAjaxData1.jsp" />>autocompleteAjaxData1.jsp
获取前缀,找到前缀匹配项,封装成JSONArray,然后回传。
<%@page import="java.util.List"%> <%@page import="java.util.ArrayList"%> <%@page import=" net.sf.json.JSONArray"%> <%@page import=" java.io.IOException"%> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <% out.clear();//清空输出数据 request.setCharacterEncoding("UTF-8");//设置request编码 response.setHeader("Pragma", "no-cache");//禁止缓存 response.setHeader("cache-control", "no-cache"); response.setDateHeader("Expires", 0); List<String> countries = new ArrayList<String>(); countries.add("Afghanistan"); countries.add("Aland Islands"); countries.add("Albania"); countries.add("Algernia"); countries.add("American Samno(USA)"); countries.add("Andorra"); String countryPrefix = request.getParameter("country");//获取AutoCompleter已经填写的内容 if (null == countryPrefix) { countryPrefix = ""; } List<String> buffer = new ArrayList<String>(); for (int i = 0; i < countries.size(); i++) { if (countries.get(i).toLowerCase() .startsWith(countryPrefix.toLowerCase())) { buffer.add(countries.get(i)); } } JSONArray jsonArray = JSONArray.fromObject(buffer); Thread.sleep(500);//当前线程睡眠0.5秒,演示indicator try { response.setContentType("aplication/json;charset=UTF-8"); out.print(jsonArray); } catch (IOException e) { e.printStackTrace(); } %>
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。