1、在Eclipse中开发基于DWR的AJAX的Web应用Struts5实现实时补全1、提供用户信息补全的业务层组件(1)接口 InfoCompleteInterface,包名称为com.px1987.dwrexampl.model设计该接口package com.px1987.dwrexampl.model;import java.util.List;public interface InfoCompleteInterface public List getUserNameInfo(String userNamePart);(2)实现类InfoCompleteImpl,包名称为com.px198
2、7.dwrexampl.model将产生出下面的状态(3)编程该实现类package com.px1987.dwrexampl.model;import java.util.*;import com.px1987.dwrexampl.dao.*;public class InfoCompleteImpl implements InfoCompleteInterface public InfoCompleteImpl() / TODO 自动生成构造函数存根 public List getUserNameInfo(String userNamePart) String selectSQL=sele
3、ct userName from UserInfo where userName like % + userNamePart+%; OperateDBInterface operateDBBeanID=new OperateDBBean(); java.sql.ResultSet resultSet=operateDBBeanID.SelectDBData(selectSQL); List allUserNameInfo=new ArrayList(); try while(resultSet.next() allUserNameInfo.add(resultSet.getString(use
4、rName); catch(java.sql.SQLException e) e.printStackTrace(); System.out.println(异常内容为:+e.getMessage(); finally operateDBBeanID.closeDBCon(); return allUserNameInfo; 2、将该业务组件类发布为远程组件-在dwr-timeBean.xml中添加下面的信息 !CDATA import java.util.List;import java.lang.String; import com.px1987.dwrexampl.model.UserI
5、nfoManageBean; import com.px1987.dwrexampl.model.UserInfoVO; List UserInfoManageBean.findSomeUserInfo(String userDepartment) ;List getUserNameInfo(String userName); 3、在线查看该远程组件(1)启动服务器并输入http:/localhost:8080/DWRWebTest/dwr/index.html(2)点击上面的infoCompleteBean链接,将出现下面的内容所要包含的*.js文件为(3)对getUserNameInfo方
6、法进行在线测试注意:保证数据库服务正确启动,并且按照UserInfo数据库表中的实际数据来输入!4、添加一个infoComplete.jsp页面(1)在userManager目录中新建infoComplete.jsp页面(2)设计其内容 script type=text/javascript src=/dwr/engine.js script type=text/javascript src=/dwr/util.js script type=text/javascript src=/webapp.js script type=text/javascript src=/dwr/interface
7、/infoCompleteBean.js infoComplete.jsp !- - 输入用户名称: 5、在 webapp.js中添加showUserNameInfo函数function showUserNameInfo(inputedUserName)if(inputedUserName=|inputedUserName.length=0) $(dataTable).style.display = none; /将表格行隐藏 return; /当没有输入时不发出请求 infoCompleteBean.getUserNameInfo(inputedUserName, showAl
8、lUserNameCallBackFun);function showAllUserNameCallBackFun(returnSomeUserNameInfoList) /代表返回值的数组 if(returnSomeUserNameInfoList.length=0) /有匹配的数据吗-表示没有匹配的数据 $(dataTable).style.display = none; /将表格行隐藏 return; var userNameString=; $(dataTable).style.display = ;DWRUtil.removeAllOptions(allUserNameInfo);
9、DWRUtil.addOptions(allUserNameInfo, returnSomeUserNameInfoList);6、添加ActionFormcom.px1987.dwrexampl.actionform.InfoCompleteActionForm、infoCompleteActionFormprivate String userName;private String allUserNameInfo;/* * Generated by MyEclipse Struts * Template path: templates/java/JavaClass.vtl */package
10、 com.px1987.dwrexampl.actionform;import javax.servlet.http.HttpServletRequest;import org.apache.struts.action.ActionErrors;import org.apache.struts.action.ActionForm;import org.apache.struts.action.ActionMapping;/* * MyEclipse Struts * Creation date: 09-28-2007 * * XDoclet definition: * struts.form
11、name=infoCompleteActionForm */public class InfoCompleteActionForm extends ActionForm /* * Generated fields */ /* userName property */ private String userName;private String allUserNameInfo; /* * Generated Methods */ /* * Method validate * param mapping * param request * return ActionErrors */ public
12、 ActionErrors validate(ActionMapping mapping, HttpServletRequest request) / TODO Auto-generated method stub return null; /* * Method reset * param mapping * param request */ public void reset(ActionMapping mapping, HttpServletRequest request) / TODO Auto-generated method stub /* * Returns the userNa
13、me. * return String */ public String getUserName() return userName; /* * Set the userName. * param userName The userName to set */ public void setUserName(String userName) this.userName = userName; public String getAllUserNameInfo() return allUserNameInfo; public void setAllUserNameInfo(String allUs
14、erNameInfo) this.allUserNameInfo = allUserNameInfo; 7、添加Actioncom.px1987.dwrexampl.action.InfoCompleteAction、/infoComplete编程Action类package com.px1987.dwrexampl.action;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.apache.struts.action.Action;imp
15、ort org.apache.struts.action.ActionForm;import org.apache.struts.action.ActionForward;import org.apache.struts.action.ActionMapping;import com.px1987.dwrexampl.actionform.InfoCompleteActionForm;public class InfoCompleteAction extends Action public ActionForward execute(ActionMapping mapping, ActionF
16、orm form, HttpServletRequest request, HttpServletResponse response) InfoCompleteActionForm infoCompleteActionForm = (InfoCompleteActionForm) form;/ TODO Auto-generated method stub return mapping.findForward(showInfo); 8、添加返回的页面 showInfo.jsp showInfo.jsp !- - 您所查询的结果如下: 9、添加ForWard输入showInfo10、再部署并执行本应用(http:/localhost:8080/DWRWebTest/userManager/infoComplete.jsp) 并且在控制台中能够看到下面的执行结果-多次向后台的业务方法进行请求调用。选择其中的某个名称项目,将自动实现输入对于中文,也同样能够自动补全将实时补全与用户注册关联1、 修改userRegister.jsp页面中的内容% taglib uri=http:/strut
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1