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="/autocompleteAjaxData1.jsp" />
	<!-- 数据URL -->
	<struts:autocompleter name="country" theme="ajax" href="%{dataUrl}"
		loadOnTextChange="true" loadMinimumCount="0" autoComplete="false"
		showDownArrow="true" indicator="indicator" />
	<img id="indicator" src="images/loading.gif">
</body>
</html>

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();
	}
%>

struts2 autocompleter 动态下拉菜单

时间: 2024-10-09 22:56:31

struts2 autocompleter 动态下拉菜单的相关文章

CSS写动态下拉菜单 -----2017-03-27

动态网站第一步:动态下拉菜单 关键点: overflow:hidden max-height xx:hover {} 设置当鼠标移上之后的效果 transition:   设置过度时间 cursor:  设置鼠标效果 opacity: 设置透明度 0-1 如下图所示 <!DOCTYPE html><html> <head> <meta charset="utf-8"> <title></title> <sty

thinkphp实现动态下拉菜单(补充 设置默认值)

在下拉菜单中的选项 用动态方式添加 提高项目可扩展性 HTML部分 <span style="font-family:KaiTi_GB2312;font-size:18px;"><tr>     <td width="84" align="right">全宗编号:</td>     <td colspan="2">       <select name=&quo

如何制作 联想动态下拉菜单

WPS表格的下拉菜单功能十分强大,使用下拉菜单功能可以帮助我们在工作中快速输入内容. 当数据内容过多时可以制作联想动态的下拉菜单,当我们输入一个关键词时,下拉菜单会出现与其相关的内容. ?点击数据-有效性,设置条件为“序列”. 来源中输入=OFFSET($A$1,MATCH(C2&"*",A:A,0)-1,,COUNTIF(A:A,C2&"*"),1). OFFSET函数的意思是以指定的引用为参照系,返回一个新的引用,它可以用来设置关键词的联想作用.

分别用CSS\JavaScript\jQuery实现动态下拉菜单

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-

iphone动态下拉菜单

介绍:实现带动画效果的下拉菜单.用户按下菜单按钮,出现下拉按钮,用户松开菜单按钮,下拉按钮收回. 测试环境:Xcode 4.3, iOS 5.0. 效果图: jQuery特效:http://www.huiyi8.com/jiaoben/

jQuery动态创建二级下拉菜单

创建网站的时候常常需要用到下拉菜单,每次都要自己写,总觉得太麻烦了,于是就写了一个动态生成下拉菜单的函数,并为其添加了相应的功能样式和视觉样式.在使用的时候,只需要定义好各级菜单的内容以及首级菜单的链接并调用dropMenu函数就可以使用了,如果需要,还可以自己添加一些富有特色的视觉样式. 1. 在HTML中添加如下代码: 1 <nav class="drop_menu"> 2 <ul></ul> 3 </nav> 并引入相应的css和j

select 下拉菜单Option对象使用add(elements,index)方法动态添加

原生js 的add函数为下拉菜单增加选项 1.object.add(oElement [, iIndex]) index 可选参数:指定元素放置所在的索引号,整形值.如果没有指定值,将添加到集合的最后. 想加到最前面,指定索引值0就可以了. @@注意: add方法为js原生方法,属于element元素对象,在使用jquery对象获取元素时是不可用的 var select = $('#select'); select.add(new Option(txt,val)) 提示:undefined ad

html 布局;css3+jq 下拉菜单;table分页动态添加行;html5本地存储;简单易用的html框架

简单好用的html框架,预览图见最后: 源码: 1.页面布局使用table: table 嵌套 +iframe 布局: 2.下拉菜单为jq+css3 动画; css input 无边框,select下拉菜单美化 1 input{appearance:none;background-color:transparent;border: solid 0px #000;} /*input 无边框*/ 2 input:disabled{background-color:#d2d2d2;border:0px

HTML+JS+CSS 实现下拉菜单

最近在看视频学习做一些HTML+JS+CSS的实例,第一个是实现下拉菜单. 5.7 制作的思路是:1.静态网页的制作 2.动态特效实现菜单的显示和隐藏(三种方法:css.JavaScript.jQuery) 3.浏览器的兼容问题(低版本IE可能不支持等) 在用css实现时,由于盒子模型有自己默认的margin和padding值,所以要reset. 有一点比较有疑问的实,老师在视频里说position:absolute要和left.top同时使用.这是为什么?在实现的时候,我并没有使用left和t