跟我学DWR框架技术应用DWR框架实现无刷新页面的数据查询的Web应用示例第三部分.docx
《跟我学DWR框架技术应用DWR框架实现无刷新页面的数据查询的Web应用示例第三部分.docx》由会员分享,可在线阅读,更多相关《跟我学DWR框架技术应用DWR框架实现无刷新页面的数据查询的Web应用示例第三部分.docx(18页珍藏版)》请在冰豆网上搜索。
跟我学DWR框架技术应用DWR框架实现无刷新页面的数据查询的Web应用示例第三部分
1.1跟我学DWR框架技术——应用DWR框架实现无刷新页面的数据查询的Web应用示例(第三部分)
1.1.1对前面的实现进一步改进以访问数据库系统
1、数据连接接口和实现类组件
2、DAO组件的接口和实现类
3、准备数据库
数据库表名称为userInfo,在该表中至少包含userName和userPassWord两个字段。
注意:
上面的内容已经在前面实现过,因此可以不需要重复!
4、修改UserInfoManageBean中的findOneUserInfo方法为下面的代码
packagecom.px1987.webcrm.model.imple;
importjava.lang.reflect.InvocationTargetException;
importjava.util.List;
importmons.beanutils.BeanUtils;
importcom.px1987.webcrm.dao.imple.UserManageDAOJDBCImple;
importcom.px1987.webcrm.dao.inter.UserManageDAOInterface;
importcom.px1987.webcrm.dao.po.UserInfoPO;
importcom.px1987.webcrm.exception.WebCRMException;
importcom.px1987.webcrm.model.inter.UserInfoManageInterface;
importcom.px1987.webcrm.model.vo.UserInfoVO;
publicclassUserInfoManageBeanimplementsUserInfoManageInterface{
publicUserInfoManageBean(){
}
@Override
publicbooleancheckUserNameValid(StringuserName){
UserManageDAOInterfaceoneUserManageDAOBean=null;
booleancheckUserNameExistResult=false;
try{
oneUserManageDAOBean=newUserManageDAOJDBCImple();
}catch(WebCRMExceptione){
e.printStackTrace();
}
try{
checkUserNameExistResult=
oneUserManageDAOBean.checkOneUserInfoExist(userName);
}catch(WebCRMExceptione){
e.printStackTrace();
}
returncheckUserNameExistResult;
}
publicUserInfoVOfindOneUserInfo(StringuserID){
UserManageDAOInterfaceoneUserManageDAOBean=null;
UserInfoPOoneReturnUserInfoPO=null;
UserInfoVOoneUserInfoVO=null;
try{
oneUserManageDAOBean=newUserManageDAOJDBCImple();
}catch(WebCRMExceptione){
e.printStackTrace();
}
try{
oneReturnUserInfoPO=oneUserManageDAOBean.queryOneUserInfo(userID);
}catch(WebCRMExceptione){
e.printStackTrace();
System.out.println("出现了错误:
"+e.getMessage());
}
if(oneReturnUserInfoPO==null){
returnnull;
}
oneUserInfoVO=newUserInfoVO();
try{
BeanUtils.copyProperties(oneUserInfoVO,oneReturnUserInfoPO);
}
catch(InvocationTargetExceptione){
e.printStackTrace();
}
catch(IllegalAccessExceptione){
e.printStackTrace();
}
returnoneUserInfoVO;
}
publicListfindSomeUserInfo(StringuserSex){
//该方法后面再实现
returnnull;
}
}
注意:
此时的VO对象中的各个属性来自于数据库表中的记录。
5、再执行本应用
(1)保证Tomcat和数据库服务启动
(2)并且添加MySQL的JDBC驱动程序的*.jar文件
(3)此时的UserID则应该是数据库表中存在的
(4)输入某个有效的userID,将出现下面的内容
(5)如果输入不存在的userID,则出现下面的错误
1.1.2实现按照“用户性别”的查询功能
1、编程UserInfoManageBean类中的findSomeUserInfo方法
UserInfoManageBean类最终的程序代码示例如下:
packagecom.px1987.webcrm.model.imple;
importjava.lang.reflect.InvocationTargetException;
importjava.util.ArrayList;
importjava.util.Iterator;
importjava.util.List;
importmons.beanutils.BeanUtils;
importcom.px1987.webcrm.dao.imple.UserManageDAOJDBCImple;
importcom.px1987.webcrm.dao.inter.UserManageDAOInterface;
importcom.px1987.webcrm.dao.po.UserInfoPO;
importcom.px1987.webcrm.exception.WebCRMException;
importcom.px1987.webcrm.model.inter.UserInfoManageInterface;
importcom.px1987.webcrm.model.vo.UserInfoVO;
publicclassUserInfoManageBeanimplementsUserInfoManageInterface{
publicUserInfoManageBean(){
}
@Override
publicbooleancheckUserNameValid(StringuserName){
UserManageDAOInterfaceoneUserManageDAOBean=null;
booleancheckUserNameExistResult=false;
try{
oneUserManageDAOBean=newUserManageDAOJDBCImple();
}catch(WebCRMExceptione){
e.printStackTrace();
}
try{
checkUserNameExistResult=
oneUserManageDAOBean.checkOneUserInfoExist(userName);
}catch(WebCRMExceptione){
e.printStackTrace();
}
returncheckUserNameExistResult;
}
publicUserInfoVOfindOneUserInfo(StringuserID){
UserManageDAOInterfaceoneUserManageDAOBean=null;
UserInfoPOoneReturnUserInfoPO=null;
UserInfoVOoneUserInfoVO=null;
try{
oneUserManageDAOBean=newUserManageDAOJDBCImple();
}catch(WebCRMExceptione){
e.printStackTrace();
}
try{
oneReturnUserInfoPO=oneUserManageDAOBean.queryOneUserInfo(userID);
}catch(WebCRMExceptione){
e.printStackTrace();
System.out.println("出现了错误:
"+e.getMessage());
}
if(oneReturnUserInfoPO==null){
returnnull;
}
oneUserInfoVO=newUserInfoVO();
try{
BeanUtils.copyProperties(oneUserInfoVO,oneReturnUserInfoPO);
}
catch(InvocationTargetExceptione){
e.printStackTrace();
}
catch(IllegalAccessExceptione){
e.printStackTrace();
}
returnoneUserInfoVO;
}
publicListfindSomeUserInfo(StringuserSexType){
UserManageDAOInterfaceoneUserManageDAOBean=null;
UserInfoPOoneReturnUserInfoPO=null;
ListallReturnUserInfoPOs=null;
ListallUserInfoVOs=newArrayList();
UserInfoVOoneUserInfoVO=null;
try{
oneUserManageDAOBean=newUserManageDAOJDBCImple();
}catch(WebCRMExceptione){
e.printStackTrace();
}
try{
allReturnUserInfoPOs=
oneUserManageDAOBean.querySomeUserInfosByUserSex(Integer.parseInt(userSexType));
}catch(NumberFormatExceptione){
e.printStackTrace();
}catch(WebCRMExceptione){
e.printStackTrace();
}
if(allReturnUserInfoPOs.size()==0){
returnallUserInfoVOs;
}
IteratorreturnUserInfoPOItems=allReturnUserInfoPOs.iterator();
while(returnUserInfoPOItems.hasNext()){
oneReturnUserInfoPO=(UserInfoPO)returnUserInfoPOItems.next();
oneUserInfoVO=newUserInfoVO();
try{
BeanUtils.copyProperties(oneUserInfoVO,oneReturnUserInfoPO);
}
catch(InvocationTargetExceptione){
e.printStackTrace();
}
catch(IllegalAccessExceptione){
e.printStackTrace();
}
allUserInfoVOs.add(oneUserInfoVO);
}
returnallUserInfoVOs;
}
}
也可以采用下面的模拟数据
publicListfindSomeUserInfo(StringuserSex){
UserInfoPOoneUserInfoVO=null,twoUserInfoVO=null;
if(userSex.equals("1")){
oneUserInfoVO=newUserInfoPO();
oneUserInfoVO.setUserName("张小明");
oneUserInfoVO.setUserPassWord("1234");
oneUserInfoVO.setUserSex
(1);
oneUserInfoVO.setPassWordAsk("你是谁?
");
oneUserInfoVO.setPassWordAnswer("我是中国人");
oneUserInfoVO.setUserMail("abc@");
oneUserInfoVO.setUserImage("/Resource/PersonImage/Chang.gif");
oneUserInfoVO.setRegisterTime("2009-1-12");
oneUserInfoVO.setId("1");
twoUserInfoVO=newUserInfoPO();
twoUserInfoVO.setUserName("张大明");
twoUserInfoVO.setUserPassWord("1234");
twoUserInfoVO.setUserSex
(1);
twoUserInfoVO.setPassWordAsk("你是谁?
");
twoUserInfoVO.setPassWordAnswer("我是中国人");
twoUserInfoVO.setUserMail("abc@");
twoUserInfoVO.setUserImage("/Resource/PersonImage/Chang.gif");
twoUserInfoVO.setRegisterTime("2009-1-12");
twoUserInfoVO.setId("2");
}
else{
oneUserInfoVO=newUserInfoPO();
oneUserInfoVO.setUserName("张小妹");
oneUserInfoVO.setUserPassWord("1234");
oneUserInfoVO.setUserSex(0);
oneUserInfoVO.setPassWordAsk("你是谁?
");
oneUserInfoVO.setPassWordAnswer("我是中国人");
oneUserInfoVO.setUserMail("abc@");
oneUserInfoVO.setUserImage("/Resource/PersonImage/LiuMing.gif");
oneUserInfoVO.setRegisterTime("2009-1-12");
oneUserInfoVO.setId("3");
twoUserInfoVO=newUserInfoPO();
twoUserInfoVO.setUserName("张英");
twoUserInfoVO.setUserPassWord("1234");
twoUserInfoVO.setUserSex(0);
twoUserInfoVO.setPassWordAsk("你是谁?
");
twoUserInfoVO.setPassWordAnswer("我是中国人");
twoUserInfoVO.setUserMail("abc@");
twoUserInfoVO.setUserImage("/Resource/PersonImage/LiuMing.gif");
twoUserInfoVO.setRegisterTime("2009-1-12");
twoUserInfoVO.setId("4");
}
ListallResultList=newArrayList();
allResultList.add(oneUserInfoVO);
allResultList.add(twoUserInfoVO);
returnallResultList;
}
2、修改dwr-timeBean.xml文件以增加对List的返回值中元素的类型说明(本示例中的signatures标签,最后的内容)
xmlversion="1.0"encoding="UTF-8"?
>
DOCTYPEdwrPUBLIC"-//GetAheadLimited//DTDDirectWebRemoting3.0//EN""http:
//getahead.org/dwr/dwr30.dtd">
value="com.px1987.webcrm.model.imple.UserInfoManageBean"/>
match="com.px1987.webcrm.model.vo.TimeInfoVOBean">
value="userName,userPassWord,userSex,passWordAsk,passWordAnswer,userMail,userImage,registerTime,id"/>
[CDATA[
importcom.px1987.webcrm.model.imple.CityManageBean;
importjava.util.HashMap;
importcom.px1987.webcrm.model.imple.UserInfoManageBean;
importcom.px1987.webcrm.model.vo.UserInfoVO;
importjava.util.List;
HashMapCityManageBean.getCityNameInfo(StringprivanceName);
ListUserInfoManageBean.findSomeUserInfo(StringuserSexType);
]]>
1.1.3测试本示例的应用效果
1、在线测试http:
//127.0.0.1:
8080/sshwebcrm/dwr/index.html
2、在dwrDemoJavaScript.js中编程下面的showUserInfoBySex函数
functionshowUserInfoBySex(inputedUserSex){
userInfoManageBean.findSomeUserInfo(inputedUserSex,
showSomeUserInfoByUserSex