注意:要事先将相应的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`文件中,你可以找到AjaxTags的源代码,包括核心的JavaScript库和相关的示例。通过研究这些源码,开发者可以更深入地了解如何集成AjaxTags到自己的项目中,以及如何自定义和扩展其功能...
"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" 的Java档案(JAR)文件。这个JAR文件可能是一个软件库,专为Web开发中的AJAX功能设计,特别是与...
ajaxtags-1.1.5.jar 版本比较古老,不过,用于学习练习还是不错的
1. **集成到项目**:首先,需要将`ajaxtags-1.2-beta3.jar`文件添加到项目的类路径中,通常是WEB-INF/lib目录下。 2. **配置Web.xml**:在Web应用的配置文件中添加AjaxTags的监听器和过滤器,以便初始化和处理AJAX...
4. **自定义标签库**: 为了方便开发者,AjaxTags引入了自定义HTML标签的概念,如`<ajax:include>`、`<ajax:submit>`等,这些标签可以直接在HTML模板中使用,降低了JavaScript与HTML之间的耦合度。 5. **错误处理和...
例如,可以使用`<%@ taglib prefix="ajax" uri="http://ajaxtags.sourceforge.net/ajaxtags" %>`来导入AjaxTags的标签库,然后在表格中使用`<ajax:displayTag>`标签,通过配置`pageUrl`、`itemsPerPage`等属性来指定...
6. **依赖包**:使用AjaxTags Resources 1.5.5.jar时,可能需要其他的依赖库,如JSTL、Servlet API等。在部署项目时,确保这些依赖包已正确配置到Web应用的类路径中。 总的来说,AjaxTags Resources 1.5.5.jar.zip ...
引入Ajaxtags-1.5.5.jar到项目中,需要在web.xml中配置标签库的描述符,并在JSP页面中声明使用。例如: ```xml <web-app> ... <taglib-uri>/tags/ajaxtags</taglib-uri> <taglib-location>/WEB-INF/tlds/...
官方版本,亲测可用
官方版本,亲测可用
官方版本,亲测可用
这个jar.zip包包含了核心的`ajaxtags-1.5.1.jar`文件,它是项目中的关键组件,包含了所有AjaxTags的功能和类库。 AjaxTags 的核心价值在于简化了在Java应用中集成Ajax的过程。在传统的Web应用中,添加动态交互通常...
官方版本,亲测可用
官方版本,亲测可用
这个工具包的发布版本为 **ajaxtags-1.3-beta-rc7**,表明这是一个测试版的候选发布版本,可能包含了对前一版本的改进和修复。 在Web开发中,Struts是一个非常流行的MVC(模型-视图-控制器)框架,用于构建基于Java...
ajax标记开发包。ajax标记开发包。ajax标记开发包。ajax标记开发包。ajax标记开发包。ajax标记开发包。ajax标记开发包。
做软件开发的可以下在这个包,别忘记添加评论哦!
HTML :: AjaxTags是Perl的AjaxTags(http://ajaxtags.sourceforge.net/index.html)的重写。 也可以在CPAN上找到该模块:http://search.cpan.org/~kmcgrath/HTML-AjaxTags-0.04/lib/HTML/AjaxTags.pm
使用Maven或Gradle等构建工具可以帮助自动化这个过程,确保所有依赖项都被适当地管理和引用。 总的来说,Ajaxtags.jar是一个强大的工具,它通过提供预定义的JSP标签简化了Java Web应用中的Ajax开发。理解并熟练运用...