1 web.xml
<!------ AutoSuggest/WebContent/WEB-INF/web.xml ---->
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">

<web-app id="dwr">

<display-name>Auto Suggest Demo</display-name>
<description>Test for Auto Suggest</description>

<filter>
<filter-name>CharacterEncodingFilter</filter-name>
<filter-class>test.joeyta.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CharacterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

<servlet>
<servlet-name>dwr-invoker</servlet-name>
<display-name>DWR Servlet</display-name>
<description>Direct Web Remoter Servlet</description>
<servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>true</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
<servlet-name>dwr-invoker</servlet-name>
<url-pattern>/dwr/*</url-pattern>
</servlet-mapping>

</web-app>
2 dwr.xml
<!------ AutoSuggest/WebContent/WEB-INF/dwr.xml ---->
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN" "http://getahead.ltd.uk/dwr/dwr20.dtd">

<dwr>
<allow>
<create creator="new" javascript="AutoSuggest">
<param name="class" value="test.joeyta.AutoSuggest"/>
</create>
<convert match="test.joeyta.User" converter="bean"></convert>
</allow>
</dwr>
3 User.java

/** *//************** User.java ************************/
package test.joeyta;



public class User implements Comparable
{
private String name;


private String tel;



public User()
{}


public User(String name, String tel)
{
this.name = name;
this.tel = tel;
}


public String getName()
{
return name;
}



public void setName(String name)
{
this.name = name;
}



public String getTel()
{
return tel;
}



public void setTel(String tel)
{
this.tel = tel;
}



public int compareTo(Object object)
{
return this.name.compareTo(((User)object).name);
}
}
4 AutoSuggest.java

/** *//************** AutoSuggest.java ************************/
package test.joeyta;


import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;



public class AutoSuggest
{


public List users;


public AutoSuggest()
{
users = new ArrayList();
users.add(new User("Joeyta","123456"));
users.add(new User("陳大強","無電話"));
users.add(new User("李小強","太多電話"));
users.add(new User("Peter","23456"));
users.add(new User("Mary","34567"));
users.add(new User("Andy","45678"));
users.add(new User("Andrew","78900"));
users.add(new User("Anthory","89000"));
users.add(new User("jane","654321"));
}



public List getSuggestions(String sSuggestValue)
{
System.out.println(sSuggestValue);
List returnList = new ArrayList();

if (sSuggestValue != null && !sSuggestValue.equals(""))
{

for (Iterator iter = users.iterator(); iter.hasNext();)
{
User user = (User) iter.next();

if(user.getName().toLowerCase().indexOf(sSuggestValue.toLowerCase()) >= 0)
{
returnList.add(user);
}
}
Collections.sort(returnList);
}
return returnList;
}

}
5 CharacterEncodingFilter.java

/** *//************** CharacterEncodingFilter.java ************/
package test.joeyta;


import java.io.IOException;


import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;



public class CharacterEncodingFilter implements Filter
{
protected String encoding = null;


protected FilterConfig filterConfig = null;


protected boolean ignore = true;



public void destroy()
{
this.encoding = null;
this.filterConfig = null;
}


public void doFilter(ServletRequest request, ServletResponse response,

FilterChain chain) throws IOException, ServletException
{

if (ignore (request.getCharacterEncoding() == null))
{
String encoding = selectEncoding(request);
if (encoding != null)
request.setCharacterEncoding(encoding);
}
chain.doFilter(request, response);
}



public void init(FilterConfig filterConfig) throws ServletException
{
this.filterConfig = filterConfig;
this.encoding = filterConfig.getInitParameter("encoding");
String value = filterConfig.getInitParameter("ignore");
if (value == null)
this.ignore = true;
else if (value.equalsIgnoreCase("true"))
this.ignore = true;
else if (value.equalsIgnoreCase("yes"))
this.ignore = true;
else
this.ignore = false;


}



protected String selectEncoding(ServletRequest request)
{
return this.encoding;
}
}
6 autosuggest.css

/**//************** autosuggest.css ************/

div.suggestions {
}{
background-color: #ffffff;
-moz-box-sizing:

<?xml version="1.0" encoding="UTF-8"?>






































2 dwr.xml

<?xml version="1.0" encoding="UTF-8"?>










3 User.java



























































4 AutoSuggest.java


























































5 CharacterEncodingFilter.java












































































6 autosuggest.css






