Jquery-at completteは簡単に応用できます。

5028 ワード

<%@ page language="java" contentType="text/html; charset=utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
   <link href="autocomplete/jquery.autocomplete.css" rel="stylesheet" type="text/css">
	<script type="text/javascript" src="jquery/jquery-1.7.2.min.js"></script>
	<script type="text/javascript" src="autocomplete/jquery.autocomplete.js"></script>
	<script type="text/javascript">
		$(document).ready(function() {
			$("#empCode").autocomplete("autoCompleteAction.action", {
				cellSeparator: "|",
				lineSeparator: "
", minChars: 1,// maxItemsToShow: 10,// formatItem: function(row) { //var obj=eval("("+row+")");// JSON return " ->" +row[0] + " ->" +row[1]+ " :" + row[2];// , }, onItemSelect: function(li) { $("#empName").val(li.extra[0]); $("#age").val(li.extra[1]); $("#orgName").val(li.extra[2]); } }); }); </script> </head> <body> :<input type="text" name="empCode" id="empCode" size="70"><br> :<input type="text" name="empName" id="empName" readonly="readonly"><br> :<input type="text" name="age" id="age" readonly="readonly"><br> :<input type="text" name="orgName" id="orgName" readonly="readonly"><br> </body> </html>
 
public class AutoCompleteAction extends ActionSupport {

    private String q;//         ,   q       
    private User user;
    private List<User> userList;
    private AutoCompleteService autoCompleteService;

    /**
     * @return the userList
     */
    public List<User> getUserList() {
        return userList;
    }

    /**
     * @param userList the userList to set
     */
    public void setUserList(List<User> userList) {
        this.userList = userList;
    }

    /**
     * @return the user
     */
    public User getUser() {
        return user;
    }

    /**
     * @param user the user to set
     */
    public void setUser(User user) {
        this.user = user;
    }

    /**
     * @param autoCompleteService the autoCompleteService to set
     */
    public void setAutoCompleteService(AutoCompleteService autoCompleteService) {
        this.autoCompleteService = autoCompleteService;
    }

    /**
     * @return the q
     */
    public String getQ() {
        return q;
    }

    /**
     * @param q the q to set
     */
    public void setQ(String q) {
        this.q = q;
    }

    @SuppressWarnings("unchecked")
    public String complete() throws IOException {

        userList = autoCompleteService.selectAll(q);
        System.out.println(userList.size());
        HttpServletResponse response=ServletActionContext.getResponse();
        response.setContentType("text/html;charset=utf-8");
        for (User user : userList) {
            response.getWriter().println(user.getId() + "|" + user.getUserName()+ "|" +user.getAge() + "|" + user.getAddr());
        }
        return null;
    }

}
 
public class AutoCompleteDaoImpl extends HibernateDaoSupport implements AutoCompleteDao {

    /**
     * @param q
     * @return
     * @see com.acca.dao.AutoCompleteDao#selectAll(java.lang.String)
     */
    @SuppressWarnings("unchecked")
    @Override
    public List<User> selectAll(final String q) {
        return (List<User>) getHibernateTemplate().execute(new HibernateCallback() {
            
            @Override
            public Object doInHibernate(Session session) throws HibernateException, SQLException {
                return session.createQuery("from User u where u.addr like ?")
                              .setParameter(0, ('%'+q+'%'))//         % ,   0  
                              .list();
            }
        });
    }

}