`

ajaxtags的使用------自动匹配

    博客分类:
  • ajax
 
阅读更多
注意:要事先将相应的jar包和读依赖的样式表、图片和js文件放到相应的目录下

1.User.java
 
package autocomplete;

import net.sourceforge.ajaxtags.xml.AjaxXmlBuilder;

public class User implements AjaxXmlBuilder.PropertyReader{
	private String userName;//用户姓名
	private String department;//所属部门名称
	
	//定义构造函数
	public User(String department,String userName){
		this.department = department;
		this.userName = userName;
	}
	
	public String getName() {
		return userName;
	}

	public String getValue() {
		return department;
	}

	public boolean isCData() {
		return false;
	}
	
	public String getUserName() {
		return userName;
	}
	public void setUserName(String userName) {
		this.userName = userName;
	}
	public String getDepartment() {
		return department;
	}
	public void setDepartment(String department) {
		this.department = department;
	}
}


2.Department.java
 
package autocomplete;

import java.util.*;

@SuppressWarnings("unchecked")
public class Department {

	  //定义一个静态的部门用户列表
	  
	static final List users = new ArrayList();

	  //为静态的部门用户列表添加用户
	  static {
		  users.add(new User("研发中心", "张三"));
		  users.add(new User("研发中心", "张四"));
		  users.add(new User("研发中心", "李三"));
		  users.add(new User("管理中心", "李四"));
		  users.add(new User("管理中心", "王五"));
		  users.add(new User("管理中心", "王六"));
	  }
	  
	
	  //根据传入的用户姓名找出其所属部门
	  public List getDepartmentByUser(String userName){
	    List userList = new ArrayList();
	    String tempUserName = null;
	    for (Iterator it = users.iterator(); it.hasNext();) {
	    	User user = (User) it.next();
	    	tempUserName = user.getUserName();
	        //列出以传入姓名开头的所有用户
	    	if (tempUserName.startsWith(userName)) {
	    		userList.add(user);
	      }
	    }
	    //返回结果集
	    return userList;
	}
	  
	//返回所有用户数据	
	public List getAllUser(){
		return users;
	}
}


3.AutoCompleteServlet.java
 
package autocomplete;

import java.util.List;


import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import net.sourceforge.ajaxtags.servlets.BaseAjaxServlet;
import net.sourceforge.ajaxtags.xml.AjaxXmlBuilder;


@SuppressWarnings("unchecked")
public class AutocompleteServlet extends BaseAjaxServlet {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	public String getXmlContent(HttpServletRequest request, HttpServletResponse response) {
		//获得客户端ajax:autocomplete标签提交的user参数
		String user = request.getParameter("user");
		//新建一个Department对象
		Department department = new Department();
		//列出以user参数指定内容开头的所有用户
		List list = department.getDepartmentByUser(user);
		//通过使用ajaxtags提供的AjaxXmlBuilder对象产生一个客户端ajax:autocomplete标签能解析的响应结果
		String result =new AjaxXmlBuilder().addItems(list).toString();
		//返回响应结果
		return result;
	}

}


4.Process.java
 
package autocomplete;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class Process extends HttpServlet {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		doPost(request,response);
	}

	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		//获得客户端表单中的user参数
		String user = request.getParameter("user");
		user = new String(user.getBytes("ISO8859-1"),"gb2312");
		//获得客户端表单中的department参数
		String department = request.getParameter("department");
		department = new String(department.getBytes("ISO8859-1"),"gb2312");

		//向客户端返回响应结果
		response.setContentType("text/html");
		response.setCharacterEncoding("gb2312");
		PrintWriter out = response.getWriter();
		out.println(department+"的"+user+"用户数据处理完成!");
		out.flush();
		out.close();
	}

}


5.autoComplete.jsp
 
<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
<%@ taglib uri="http://ajaxtags.sourceforge.net/tags/ajaxtags" prefix="ajax"%>

<html>
  <head>
 	<title>Autocomplete标签示例</title>
	<script type="text/javascript" src="js/prototype.js"></script>
	<script type="text/javascript" src="js/scriptaculous/scriptaculous.js"></script>
	<script type="text/javascript" src="js/overlibmws/overlibmws.js"></script>
	<script type="text/javascript" src="js/ajaxtags.js"></script>
	
	<link rel="stylesheet" type="text/css" href="css/ajaxtags.css" /> 	 
  </head>
	  
  <body>
    <h2>Autocomplete标签示例</h2><br>
    <hr>
    <form action="Process" class="basicForm" method="post">
		请输入用户姓名:
		<input id="user" name="user" type="text">
		<span id="waitIcon" style="display:none;">
			<img src="images/indicator.gif">
		</span>
		<br>
		该用户所属部门:
		<input id="department" name="department" type="text"><br>
		<input type="submit" name="submit" value="提交">
    </form>
    
	<ajax:autocomplete
	  source="user"
	  target="department"
	  baseUrl="AutocompleteServlet"
	  className="autocomplete"
	  indicator="waitIcon"
	  minimumCharacters="1"/>
	           
  </body>
</html>


6.web.xml
 
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
	http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
	<welcome-file-list>
		<welcome-file>index.jsp</welcome-file>
	</welcome-file-list>
	<filter>
		<filter-name>ResponseOverrideFilter</filter-name>
		<filter-class>org.displaytag.filter.ResponseOverrideFilter</filter-class>
	</filter>
	<filter-mapping>
		<filter-name>ResponseOverrideFilter</filter-name>
		<url-pattern>/displaytag.jsp</url-pattern>
	</filter-mapping>

	<servlet>
		<servlet-name>AutocompleteServlet</servlet-name>
		<servlet-class>autocomplete.AutocompleteServlet</servlet-class>
	</servlet>
	<servlet>
		<servlet-name>Process</servlet-name>
		<servlet-class>autocomplete.Process</servlet-class>
	</servlet>

	<servlet-mapping>
		<servlet-name>AutocompleteServlet</servlet-name>
		<url-pattern>/AutocompleteServlet</url-pattern>
	</servlet-mapping>
	<servlet-mapping>
		<servlet-name>Process</servlet-name>
		<url-pattern>/Process</url-pattern>
	</servlet-mapping>
</web-app>
分享到:
评论

相关推荐

    ajaxtags-1.2-beta1-src.zip

    在解压后的`ajaxtags-1.2-beta1`文件中,你可以找到AjaxTags的源代码,包括核心的JavaScript库和相关的示例。通过研究这些源码,开发者可以更深入地了解如何集成AjaxTags到自己的项目中,以及如何自定义和扩展其功能...

    ajaxtags-1.5.1-bin

    "ajaxtags-1.5.1-bin" 是一个与AJAX技术相关的软件包,主要用于协助开发者进行AJAX功能的集成和开发。这个版本1.5.1表明它可能包含了一些性能改进、错误修复或者新特性相对于之前的版本。下面将详细讨论AJAX、AJAX ...

    ajaxtags-resources-1.5.1.jar.zip

    【标题】"ajaxtags-resources-1.5.1.jar.zip" 是一个压缩文件,其中包含了一个名为 "ajaxtags-resources-1.5.1.jar" 的Java档案(JAR)文件。这个JAR文件可能是一个软件库,专为Web开发中的AJAX功能设计,特别是与...

    ajaxtags-1.1.5.jar

    ajaxtags-1.1.5.jar 版本比较古老,不过,用于学习练习还是不错的

    ajaxtags-1.2-beta3.jar.zip

    1. **集成到项目**:首先,需要将`ajaxtags-1.2-beta3.jar`文件添加到项目的类路径中,通常是WEB-INF/lib目录下。 2. **配置Web.xml**:在Web应用的配置文件中添加AjaxTags的监听器和过滤器,以便初始化和处理AJAX...

    ajaxtags-1.3-beta-rc3-src.zip

    4. **自定义标签库**: 为了方便开发者,AjaxTags引入了自定义HTML标签的概念,如`&lt;ajax:include&gt;`、`&lt;ajax:submit&gt;`等,这些标签可以直接在HTML模板中使用,降低了JavaScript与HTML之间的耦合度。 5. **错误处理和...

    ajaxtags-1.5.5-bin.zip

    例如,可以使用`&lt;%@ taglib prefix="ajax" uri="http://ajaxtags.sourceforge.net/ajaxtags" %&gt;`来导入AjaxTags的标签库,然后在表格中使用`&lt;ajax:displayTag&gt;`标签,通过配置`pageUrl`、`itemsPerPage`等属性来指定...

    ajaxtags-resources-1.5.5.jar.zip

    6. **依赖包**:使用AjaxTags Resources 1.5.5.jar时,可能需要其他的依赖库,如JSTL、Servlet API等。在部署项目时,确保这些依赖包已正确配置到Web应用的类路径中。 总的来说,AjaxTags Resources 1.5.5.jar.zip ...

    ajaxtags-1.5.5.jar.zip

    引入Ajaxtags-1.5.5.jar到项目中,需要在web.xml中配置标签库的描述符,并在JSP页面中声明使用。例如: ```xml &lt;web-app&gt; ... &lt;taglib-uri&gt;/tags/ajaxtags&lt;/taglib-uri&gt; &lt;taglib-location&gt;/WEB-INF/tlds/...

    ajaxtags-1.3-beta-rc7.jar

    官方版本,亲测可用

    ajaxtags-1.2-beta3-sources.jar

    官方版本,亲测可用

    ajaxtags-1.2-beta2-sources.jar

    官方版本,亲测可用

    ajaxtags-1.5.1.jar.zip

    这个jar.zip包包含了核心的`ajaxtags-1.5.1.jar`文件,它是项目中的关键组件,包含了所有AjaxTags的功能和类库。 AjaxTags 的核心价值在于简化了在Java应用中集成Ajax的过程。在传统的Web应用中,添加动态交互通常...

    ajaxtags-1.1.5-sources.jar

    官方版本,亲测可用

    ajaxtags-1.2-beta2.jar

    官方版本,亲测可用

    ajaxtags-1.3

    这个工具包的发布版本为 **ajaxtags-1.3-beta-rc7**,表明这是一个测试版的候选发布版本,可能包含了对前一版本的改进和修复。 在Web开发中,Struts是一个非常流行的MVC(模型-视图-控制器)框架,用于构建基于Java...

    ajaxtags-1.1.5.zip

    ajax标记开发包。ajax标记开发包。ajax标记开发包。ajax标记开发包。ajax标记开发包。ajax标记开发包。ajax标记开发包。

    喜欢用ajaxtags可以下载

    做软件开发的可以下在这个包,别忘记添加评论哦!

    HTML::AjaxTags-开源

    HTML :: AjaxTags是Perl的AjaxTags(http://ajaxtags.sourceforge.net/index.html)的重写。 也可以在CPAN上找到该模块:http://search.cpan.org/~kmcgrath/HTML-AjaxTags-0.04/lib/HTML/AjaxTags.pm

    ajaxtags.jar.zip

    使用Maven或Gradle等构建工具可以帮助自动化这个过程,确保所有依赖项都被适当地管理和引用。 总的来说,Ajaxtags.jar是一个强大的工具,它通过提供预定义的JSP标签简化了Java Web应用中的Ajax开发。理解并熟练运用...

Global site tag (gtag.js) - Google Analytics