struts2ajax.docx

上传人:b****1 文档编号:1132124 上传时间:2023-04-30 格式:DOCX 页数:10 大小:281.57KB
下载 相关 举报
struts2ajax.docx_第1页
第1页 / 共10页
struts2ajax.docx_第2页
第2页 / 共10页
struts2ajax.docx_第3页
第3页 / 共10页
struts2ajax.docx_第4页
第4页 / 共10页
struts2ajax.docx_第5页
第5页 / 共10页
struts2ajax.docx_第6页
第6页 / 共10页
struts2ajax.docx_第7页
第7页 / 共10页
struts2ajax.docx_第8页
第8页 / 共10页
struts2ajax.docx_第9页
第9页 / 共10页
struts2ajax.docx_第10页
第10页 / 共10页
亲,该文档总共10页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

struts2ajax.docx

《struts2ajax.docx》由会员分享,可在线阅读,更多相关《struts2ajax.docx(10页珍藏版)》请在冰点文库上搜索。

struts2ajax.docx

struts2ajax

Struts2.1.6精简实例系列教程(5):

用户注册模块(整合Jquery)

2009年08月03日09:

08

学习Jquery,当然要首先去它的官方网站:

1.3.2。

下载解压后,其实,也就是JS文件jquery-1.3.2.min.js。

Jquery最好的学习材料莫过于Jquery1.3API参考文档中文版(如下图),下载地址:

http:

//jquery-api-zh-相当美观的一份API文档,写得也很详细,有空时看看,看上一段时间,就能对里面的属性、方法、事件等的大概位置和大概用法有个了解。

当做网站用到时,能迅速查找到需要的并用上,就行了!

好,Jquery的简单介绍就到这里,具体的用法,也一言难尽,我们下到用到Jquery的代码中作详细解释,但更多的用法,还得靠大家平时对Jquery的学习和查阅!

来说说我们今期教程要讲解的模块——用户登录模块。

Model层是融合了iBatis来开发的。

关于iBatis的下载使用,请先看Struts2.1.6精简实例系列教程(3):

新闻管理Model层的开发(整合iBatis)。

首先在MySQL中,新建一个user表,建表SQL语句为:

createtableuser

   IDintauto_incrementnotnullprimarykey,

   LOGIN_NAMEvarchar(25),

   PASSWORDvarchar(25)

);

将用户信息封装到一个POJO类里,User.java的代码如下:

packagecn.simple.pojo;

/***//**

*用户类

*@authorrongxinhua

*

*/

publicclassUser{

   

   privateintid;       //编号

   privateStringloginName;   //登录账号

   privateStringpassword;   //密码

   

   publicintgetId(){

       returnid;

   }

   publicvoidsetId(intid){

       this.id=id;

   }

   publicStringgetLoginName(){

       returnloginName;

   }

   publicvoidsetLoginName(StringloginName){

       this.loginName=loginName;

   }

   publicStringgetPassword(){

       returnpassword;

   }

   publicvoidsetPassword(Stringpassword){

       this.password=password;

   }

}

User类与user表之间的属性列映射、查询语句、更新语句的定义等,我们写在配置文件User.xml里,代码如下:

xmlversion="1.0"encoding="UTF-8"?

>

DOCTYPEsqlMap     

   PUBLIC"-//ibatis.apache.org//DTDSQLMap2.0//EN"     

   "http:

//ibatis.apache.org/dtd/sql-map-2.dtd">

   

   

--用"User"表示cn.simple.pojo.User类,下面用到此类时,用简称"User"即行-->

   

   

   

--定义结果集,用户类与用户表的映射-->

   

       

       

       

   

   

   

--查询用户列表-->

   

       select*fromuser

   

   

   

--根据ID单查用户-->

   

       select

       IDasid,

       LOGIN_NAMEasloginName,

       PASSWORDaspassword

       fromuser

       whereID=#id#

   

   

   

--根据用户名查询用户-->

   

       select

       IDasid,

       LOGIN_NAMEasloginName,

       PASSWORDaspassword

       fromuser

       whereLOGIN_NAME=#loginName#

   

   

   

--添加用户-->

   

       insertintouser(

           LOGIN_NAME,

           PASSWORD

       )values(

           #loginName#,

           #password#

       )

   

   

   

--修改密码-->

   

       updateuserset

       PASSWORD=#password#

       whereID=#id#

   

   

   

--删除用户-->

   

       deletefromuserwhereID=#id#

   

   

   

此时,我们须要将User.xml添加到SqlMapConfig.xml里去,即在SqlMapConfig.xml加入以下代码:

处理用户增删查改的业务逻辑类,UserManager.java,代码如下:

packagecn.simple.manager;

importjava.io.IOException;

importjava.io.Reader;

importjava.sql.SQLException;

importjava.util.List;

importcn.simple.pojo.User;

importmon.resources.Resources;

importcom.ibatis.sqlmap.client.SqlMapClient;

importcom.ibatis.sqlmap.client.SqlMapClientBuilder;

/***//**

*用户管理

*@authorrongxinhua

*

*/

publicclassUserManager{

   

   privatestaticSqlMapClientsqlMapper;

   

   static{

       try{

           Readerreader=Resources.getResourceAsReader("SqlMapConfig.xml");

           sqlMapper=SqlMapClientBuilder.buildSqlMapClient(reader);

           reader.close();

       }catch(IOExceptione){

           thrownewRuntimeException("SqlMapClient创建失败!

");

       }   

   }

   

   /***//**

    *查询用户列表

    *@return用户对象列表

    *@throwsSQLException

    */

   publicstaticListselectAllUsers()throwsSQLException{

       returnsqlMapper.queryForList("selectAllUsers");

   }

   

   /***//**

    *根据ID单查用户

    *@paramid用户ID

    *@return用户对象

    *@throwsSQLException

    */

   publicstaticUserselectUserById(intid)throwsSQLException{

       return(User)sqlMapper.queryForObject("selectUserById",id);

   }

   

   /***//**

    *根据用户名单查用户对象

    *@paramloginName

    *@return

    *@throwsSQLException

    */

   publicstaticUserselectUserByLoginName(StringloginName)throwsSQLException{

       Useruser=(User)sqlMapper.queryForObject("selectUserByLoginName",loginName);

       returnuser;

   }

   

   /***//**

    *添加用户

    *@paramuser用户对象

    *@throwsSQLException

    */

   publicstaticvoidinsertUser(Useruser)throwsSQLException{

       sqlMapper.insert("insertUser",user);

   }

   

   /***//**

    *删除用户

    *@paramid用户ID

    *@throwsSQLException

    */

   publicstaticvoiddeleteUserById(intid)throwsSQLException{

       sqlMapper.delete("deleteUserById",id);

   }

   

   /***//**

    *修改密码

    *@paramuser

    *@throwsSQLException

    */

   publicstaticvoidupdatePassword(Useruser)throwsSQLException{

       sqlMapper.update("updatePassword",user);

   }

}

好,你们来写我们的Action类RegisterAction.java,代码如下:

packagecn.simple.action;

importjava.io.IOException;

importjavax.servlet.http.HttpServletResponse;

importorg.apache.struts2.ServletActionContext;

importorg.apache.struts2.convention.annotation.Result;

importorg.apache.struts2.convention.annotation.Results;

importcn.simple.manager.UserManager;

importcn.simple.pojo.User;

importcom.opensymphony.xwork2.ActionSupport;

/***//**

*处理用户注册的Action

*@authorrongxinhua

*

*/

@Results({

   @Result(name="success",location="register-success.jsp",type="dispatcher"),

   @Result(name="input",location="registerform.jsp",type="dispatcher")

})

publicclassRegisterActionextendsActionSupport{

   

   

   privateUseruser;

   privateStringloginName1;

   

   publicStringexecute()throwsException{

       UserManager.insertUser(user);

       returnSUCCESS;

   }

   

   /***//**

    *判断用户名是否存在(用于Ajax异步验证)

    *@throwsException

    */

   publicvoidisExistLoginName()throwsException{

       if(loginName1.length()<4||loginName1.length()>8){

           sendMsg("用户名长度应在4-8之间!

");

       }elseif(null!

=UserManager.selectUserByLoginName(loginName1)){

           sendMsg("用户名"+loginName1+"已存在!

");

       }else{

           sendMsg("success");

       }

       

   }

   

   /***//**

    *向客户端发送数据

    *@paramcontent

    *@throwsIOException

    */

   publicvoidsendMsg(Stringcontent)throwsIOException{

       HttpServletResponseresponse=ServletActionContext.getResponse();

       response.setCharacterEncoding("UTF-8");

       response.getWriter().write(content);

   }

   publicUsergetUser(){

       returnuser;

   }

   publicvoidsetUser(Useruser){

       this.user=user;

   }

   publicStringgetLoginName1(){

       returnloginName1;

   }

   publicvoidsetLoginName1(StringloginName1){

       this.loginName1=loginName1;

   }

   

   

   

}

最后,我们来写我们的注册页面registerform.jsp,代码如下:

<%@pagelanguage="java"contentType="text/html;charset=UTF-8"

   pageEncoding="UTF-8"%>

<%@taglibprefix="s"uri="/struts-tags"%>

DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""http:

//www.w3.org/TR/html4/loose.dtd">

用户注册页

   $(function(){

       varstate=false;   //表单是否允许submit的状态变量,全局变量

       //当id为"loginName"的表单域中输入东西,响应键盘弹起事件时,会触发此function

       $("#loginName").keyup(function(){

           varloginName=$("#loginName").val();   //获取id为"loginName"的表单域的值

           varurl="register!

isExistLoginName.action?

loginName1="+loginName;

           $.get(url,null,callback);   //用get方式向服务器端发送数据

       });

       functioncallback(msg){

           if("success"==msg){   //收到服务器端返回的"success"字符串

               $("#result").html("");   //清空提示信息显示域

               state=true;   //设置submit状态为true,表示允许提交

           }else{

               state=false;   //设置submit状态为false,表示不允许提交

               $("#result").html(msg);       //将服务器端返回的提示信息渲染页面

           }

       }

       //当表单submit时,会触发此function.

       //若returntrue,则提交,若returnfalse,则不提交

       $("form").submit(function(){

           returnstate;

       });

       

   });

用户注册页

fielderror>

fielderror>

   账号

   

red;">

   密码

   

好,我们来运行一下,看看效果怎么样。

输入http:

//localhost:

8060/SimpleWeb/registerform.action。

运行效果截图如下:

当输入账号的长度小于4时,输入框右边会动态地显示如下的提示信息,而页面并不刷新、不重新加载。

此时,点“注册”是提交不了的。

当输入长度为4-8之间时,如“blogjava”,点注册后,能成功提交。

当数据库中已存在输入的用户名时,会给出相应的提示信息,如再次注册时输入“blogjava”,会动态显示如下信息:

好,本期就介绍到这里,还是重复那一句,要学好Jquery的话,还得多看API文档,并多做些例子测试一下,感受一下。

下期我们将继续Struts2.1.6+Jquery整合的话题

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2