跟我学DWR框架技术应用DWR框架相关技术实现实时补全的Web应用示例Word文档格式.docx
《跟我学DWR框架技术应用DWR框架相关技术实现实时补全的Web应用示例Word文档格式.docx》由会员分享,可在线阅读,更多相关《跟我学DWR框架技术应用DWR框架相关技术实现实时补全的Web应用示例Word文档格式.docx(23页珍藏版)》请在冰点文库上搜索。
while(resultSet.next())
allUserNameInfo.add(resultSet.getString("
userName"
));
catch(java.sql.SQLExceptione)
e.printStackTrace();
System.out.println("
异常内容为:
+e.getMessage());
finally
operateDBBeanID.closeDBCon();
returnallUserNameInfo;
3、将该业务组件类发布为远程组件-------在dwr-timeBean.xml中添加下面的信息
<
?
xmlversion="
1.0"
encoding="
UTF-8"
>
!
DOCTYPEdwrPUBLIC"
-//GetAheadLimited//DTDDirectWebRemoting1.0//EN"
"
http:
//www.getahead.ltd.uk/dwr/dwr10.dtd"
dwr>
<
allow>
createcreator="
new"
javascript="
timeInfoJavaBean"
scope="
application"
paramname="
class"
value="
com.px1987.dwrexampl.model.TimeInfoJavaBean"
/>
includemethod="
getSystemTime"
setOneTimeInfoVOBean"
/create>
cityManageBean"
<
com.px1987.dwrexampl.model.CityManageBean"
getCityNameInfo"
checkUserNameValid"
userInfoManageBean"
com.px1987.dwrexampl.model.UserInfoManageBean"
findOneUserInfo"
findSomeUserInfo"
infoCompleteBean"
com.px1987.dwrexampl.model.InfoCompleteImpl"
getUserNameInfo"
convertconverter="
bean"
match="
com.px1987.dwrexampl.model.TimeInfoVOBean"
include"
hourText,minuteText,secondText"
/convert>
com.px1987.dwrexampl.model.UserInfoVO"
userName,userDepartment,userAdminLevel,departAdminLevel,userImage,registerTime"
/allow>
signatures>
[CDATA[
importjava.util.List;
importjava.lang.String;
importcom.px1987.dwrexampl.model.UserInfoManageBean;
importcom.px1987.dwrexampl.model.UserInfoVO;
List<
UserInfoVO>
UserInfoManageBean.findSomeUserInfo(StringuserDepartment);
List<
String>
getUserNameInfo(StringuserName);
]]>
/signatures>
/dwr>
4、在线查看该远程组件
(1)启动服务器并输入http:
//localhost:
8080/DWRWebTest/dwr/index.html
(2)点击上面的infoCompleteBean链接,将出现下面的内容
所要包含的*.js文件为
scripttype='
text/javascript'
src='
/DWRWebTest/dwr/interface/infoCompleteBean.js'
/script>
(3)对getUserNameInfo方法进行在线测试
注意:
保证数据库服务正确启动,并且按照UserInfo数据库表中的实际数据来输入!
4、添加一个infoComplete.jsp页面
(1)在userManager目录中新建infoComplete.jsp页面
(2)设计其内容
%@pagelanguage="
java"
pageEncoding="
gb2312"
%>
%@tagliburi="
//struts.apache.org/tags-bean"
prefix="
%>
//struts.apache.org/tags-html"
html"
//struts.apache.org/tags-logic"
logic"
//struts.apache.org/tags-tiles"
tiles"
%
StringwebContext=request.getContextPath();
DOCTYPEHTMLPUBLIC"
-//W3C//DTDHTML4.01Transitional//EN"
html:
htmllang="
true"
head>
base/>
%=webContext%>
/dwr/engine.js'
/dwr/util.js'
/webapp.js'
/dwr/interface/infoCompleteBean.js'
title>
infoComplete.jsp<
/title>
metahttp-equiv="
pragma"
content="
no-cache"
cache-control"
expires"
0"
keywords"
keyword1,keyword2,keyword3"
description"
Thisismypage"
--
linkrel="
stylesheet"
type="
text/css"
href="
styles.css"
-->
/head>
body>
formaction="
/infoComplete.do"
method="
post"
>
tablewidth="
308"
border="
tr>
tdwidth="
117"
divalign="
right"
输入用户名称:
/div>
/td>
181"
textproperty="
onkeyup="
showUserNameInfo(this.value)"
/tr>
td>
&
nbsp;
100%"
1"
id="
dataTable"
style="
display:
none"
bordercolorlight="
#4DA6FF"
bordercolordark="
#ECF5FF"
bgcolor="
#F0F8FF"
<
selectproperty="
allUserNameInfo"
onchange="
userName.value=options[selectedIndex].value;
/html:
select>
/table>
form>
/body>
html>
5、在webapp.js中添加showUserNameInfo函数
functionshowUserNameInfo(inputedUserName)
if(inputedUserName=="
||inputedUserName.length==0)
$("
).style.display="
//将表格行隐藏
return;
//当没有输入时不发出请求
infoCompleteBean.getUserNameInfo(inputedUserName,showAllUserNameCallBackFun);
functionshowAllUserNameCallBackFun(returnSomeUserNameInfoList)//代表返回值的数组
if(returnSomeUserNameInfoList.length==0)//有匹配的数据吗---表示没有匹配的数据
return;
varuserNameString="
$("
DWRUtil.removeAllOptions("
);
DWRUtil.addOptions('
allUserNameInfo'
returnSomeUserNameInfoList);
6、添加ActionForm表单类
(1)类名称为com.px1987.dwrexampl.actionform.InfoCompleteActionForm、包名称为infoCompleteActionForm
(2)在该表单组件类中添加如下的两个成员属性
privateStringuserName;
privateStringallUserNameInfo;
(3)完整的代码示例
/*
*GeneratedbyMyEclipseStruts
*Templatepath:
templates/java/JavaClass.vtl
*/
packagecom.px1987.dwrexampl.actionform;
importjavax.servlet.http.HttpServletRequest;
importorg.apache.struts.action.ActionErrors;
importorg.apache.struts.action.ActionForm;
importorg.apache.struts.action.ActionMapping;
/**
*MyEclipseStruts
*Creationdate:
09-28-2007
*
*XDocletdefinition:
*@struts.formname="
infoCompleteActionForm"
publicclassInfoCompleteActionFormextendsActionForm{
/*
*Generatedfields
/**userNameproperty*/
privateStringuserName;
*GeneratedMethods
/**
*Methodvalidate
*@parammapping
*@paramrequest
*@returnActionErrors
publicActionErrorsvalidate(ActionMappingmapping,
HttpServletRequestrequest){
//TODOAuto-generatedmethodstub
returnnull;
*Methodreset
publicvoidreset(ActionMappingmapping,HttpServletRequestrequest){
*ReturnstheuserName.
*@returnString
publicStringgetUserName(){
returnuserName;
*SettheuserName.
*@paramuserNameTheuserNametoset
publicvoidsetUserName(StringuserName){
this.userName=userName;
publicStringgetAllUserNameInfo(){
returnallUserNameInfo;
publicvoidsetAllUserNameInfo(StringallUserNameInfo){
this.allUserNameInfo=allUserNameInfo;
7、添加Action类
(1)类名称为com.px1987.dwrexampl.action.InfoCompleteAction、/infoComplete
(2)编程InfoCompleteAction程序类
packagecom.px1987.dwrexampl.action;
importjavax.servlet.http.HttpServletResponse;
importorg.apache.struts.action.Action;
importorg.apache.struts.action.ActionForward;
importcom.px1987.dwrexampl.actionform.InfoCompleteActionForm;
publicclassInfoCompleteActionextendsAction
publicActionForwardexecute(ActionMappingmapping,ActionFormform,
HttpServletRequestrequest,HttpServletResponseresponse){
InfoCompleteActionForminfoCompleteActionForm=(InfoCompleteActionForm)form;
//TODOAuto-generatedmethodstub
returnmapping.findForward("
showInfo"
8、添加返回的页面showInfo.jsp
showInfo.jsp<
您所查询的结果如下:
9、添加ForWard
输入showInfo
10、再部署并执行本应用
(http:
8080/DWRWebTest/userManager/infoComplete.jsp)
并且在控制台中能够看到下面的执行结果-----多次向后台的业务方法进行请求调用。
选择其中的某个名称项目,将自动实现输入
对于中文,也同样能够自动补全
1.1.2将实时补全与用户注册关联
1、修改userRegister.jsp页面中的内容
GB18030"
%@tagl