AJAX学习之序列二:struts2 jquery json 实现AJAX 注册ID验证

前端之家收集整理的这篇文章主要介绍了AJAX学习之序列二:struts2 jquery json 实现AJAX 注册ID验证前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

1.目标

目标使用AJAX实现如下效果

当填入用户名的时候,光标移开进行AJAX验证,如果已经被注册提示如下:

如果可以使用,提示如下:

2.实现过程

准备:jquery,struts2,开发工具等这种环境问题不累述,大家自己准备。

主要工作如下

1.开发CheckMemberIdAction:

[java] view plain copy
  1. packagecom.contentsearch.action;@H_502_41@
  2. @H_502_41@
  3. importcom.opensymphony.xwork2.ActionSupport;@H_502_41@
  4. @H_502_41@
  5. publicclassCheckMemberIdActionextendsActionSupport{@H_502_41@
  6. @H_502_41@
  7. privateStringisMemberIdUsed;@H_502_41@
  8. @H_502_41@
  9. privateStringmemberid;@H_502_41@
  10. @H_502_41@
  11. publicStringgetMemberid(){@H_502_41@
  12. returnmemberid;@H_502_41@
  13. }@H_502_41@
  14. @H_502_41@
  15. voidsetMemberid(Stringmemberid){@H_502_41@
  16. this.memberid=memberid;@H_502_41@
  17. }@H_502_41@
  18. @H_502_41@
  19. publicStringgetIsMemberIdUsed(){@H_502_41@
  20. returnisMemberIdUsed;@H_502_41@
  21. }@H_502_41@
  22. @H_502_41@
  23. voidsetIsMemberIdUsed(StringisMemberIdUsed){@H_502_41@
  24. this.isMemberIdUsed=isMemberIdUsed;@H_502_41@
  25. }@H_502_41@
  26. @H_502_41@
  27. //处理用户请求的execute方法@H_502_41@
  28. publicStringexecute()throwsException{@H_502_41@
  29. if("sky".equals(memberid)){@H_502_41@
  30. this.setIsMemberIdUsed("yes");@H_502_41@
  31. }else{@H_502_41@
  32. this.setIsMemberIdUsed("no");@H_502_41@
  33. }@H_502_41@
  34. returnSUCCESS;@H_502_41@
  35. }@H_502_41@
  36. }@H_502_41@

2:开发Member Pojo

[java] packagecom.contentsearch.dao.pojo;@H_502_41@
  • @H_502_41@
  • classMember{@H_502_41@
  • privatelongid;@H_502_41@
  • privateStringmemberid;@H_502_41@
  • privateStringname;@H_502_41@
  • privateStringpass;@H_502_41@
  • privateStringemail;@H_502_41@
  • privateStringgender;@H_502_41@
  • privateStringbirthday;@H_502_41@
  • @H_502_41@
  • publicStringgetMemberid(){@H_502_41@
  • returnmemberid;@H_502_41@
  • }@H_502_41@
  • @H_502_41@
  • voidsetMemberid(Stringmemberid){@H_502_41@
  • this.memberid=memberid;@H_502_41@
  • }@H_502_41@
  • @H_502_41@
  • longgetId(){@H_502_41@
  • returnid;@H_502_41@
  • }@H_502_41@
  • @H_502_41@
  • voidsetId(longid){@H_502_41@
  • this.id=id;@H_502_41@
  • }@H_502_41@
  • @H_502_41@
  • publicStringgetName(){@H_502_41@
  • returnname;@H_502_41@
  • }@H_502_41@
  • @H_502_41@
  • voidsetName(Stringname){@H_502_41@
  • this.name=name;@H_502_41@
  • }@H_502_41@
  • @H_502_41@
  • publicStringgetPass(){@H_502_41@
  • returnpass;@H_502_41@
  • }@H_502_41@
  • @H_502_41@
  • voidsetPass(Stringpass){@H_502_41@
  • this.pass=pass;@H_502_41@
  • }@H_502_41@
  • @H_502_41@
  • publicStringgetEmail(){@H_502_41@
  • returnemail;@H_502_41@
  • }@H_502_41@
  • @H_502_41@
  • voidsetEmail(Stringemail){@H_502_41@
  • this.email=email;@H_502_41@
  • }@H_502_41@
  • @H_502_41@
  • publicStringgetGender(){@H_502_41@
  • returngender;@H_502_41@
  • }@H_502_41@
  • @H_502_41@
  • voidsetGender(Stringgender){@H_502_41@
  • this.gender=gender;@H_502_41@
  • }@H_502_41@
  • @H_502_41@
  • publicStringgetBirthday(){@H_502_41@
  • returnbirthday;@H_502_41@
  • }@H_502_41@
  • @H_502_41@
  • voidsetBirthday(Stringbirthday){@H_502_41@
  • this.birthday=birthday;@H_502_41@
  • }@H_502_41@
  • }@H_502_41@
  • 3.配置Struts.xml

    [xhtml]
  • <?xmlversion="1.0"encoding="GBK"?>@H_502_41@
  • <!--指定Struts2配置文件的DTD信息-->@H_502_41@
  • <!DOCTYPEstrutsPUBLIC@H_502_41@
  • "-//ApacheSoftwareFoundation//DTDStrutsConfiguration2.0//EN"@H_502_41@
  • "http://struts.apache.org/dtds/struts-2.0.dtd">@H_502_41@
  • <!--struts是Struts2配置文件的根元素-->@H_502_41@
  • <struts<!--Struts2的Action必须放在指定的包空间下定义-->@H_502_41@
  • packagename="strutsqs"extends="struts-default">@H_502_41@
  • <!--定义login的Action,该Action的实现类为lee.Action类-->@H_502_41@
  • actionname="Login"class="com.contentsearch.action.LoginAction"<!--定义处理结果和资源之间映射关系。-->@H_502_41@
  • resultname="input">/login.jsp</result>@H_502_41@
  • resultname="error">/error.jsp>@H_502_41@
  • resultname="success">/welcome.jspaction>@H_502_41@
  • @H_502_41@
  • package>@H_502_41@
  • packagename="strutsjson"extends="json-default"actionname="CheckMemberId"class="com.contentsearch.action.CheckMemberIdAction"resulttype="json"/>@H_502_41@
  • >@H_502_41@
  • constantname="struts.objectFactory"value="spring"/>@H_502_41@
  • @H_502_41@
  • >@H_502_41@
  • @H_502_41@
  • 4.开发register.jsp

    [xhtml] <%@pagelanguage="java"contentType="text/html;charset=UTF-8"@H_502_41@
  • pageEncoding="UTF-8"%<%@taglibprefix="s"uri="/struts-tags"%>@H_502_41@
  • <!DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"htmlheadMetahttp-equiv="Content-Type"content="text/html;charset=UTF-8"title>Inserttitleherelinktype="text/css"href="css/jquery-ui-1.7.custom.css"mce_href="css/jquery-ui-1.7.custom.css"@H_502_41@
  • rel="stylesheet"/>@H_502_41@
  • mce:styletype="text/css"><!--@H_502_41@
  • body{@H_502_41@
  • font:62.5%"TrebuchetMS",sans-serif;@H_502_41@
  • margin:50px;@H_502_41@
  • }@H_502_41@
  • @H_502_41@
  • .demo{@H_502_41@
  • align:center;@H_502_41@
  • border:1pxsolid#CA8EFF;@H_502_41@
  • width:500px;@H_502_41@
  • height:400px;@H_502_41@
  • padding:10px;@H_502_41@
  • float:center;@H_502_41@
  • background:#E0E0E0;@H_502_41@
  • }@H_502_41@
  • -->mce:stylestyletype="text/css"mce_bogus="1">body{@H_502_41@
  • font:62.5%"TrebuchetMS",sans-serif;@H_502_41@
  • margin:50px;@H_502_41@
  • }@H_502_41@
  • @H_502_41@
  • .demo{@H_502_41@
  • align:center;@H_502_41@
  • border:1pxsolid#CA8EFF;@H_502_41@
  • width:500px;@H_502_41@
  • height:400px;@H_502_41@
  • padding:10px;@H_502_41@
  • float:center;@H_502_41@
  • background:#E0E0E0;@H_502_41@
  • }stylemce:scriptsrc="js/jQuery/jquery-1.3.2.min.js"mce_src="js/jQuery/jquery-1.3.2.min.js"mce:scriptmce:scripttype="text/javascript"><!--@H_502_41@
  • $(document).ready(function(){@H_502_41@
  • ClearErrorInfo();@H_502_41@
  • $("#loginSubmit").click(function(){@H_502_41@
  • ClearErrorInfo();@H_502_41@
  • varflag=true;@H_502_41@
  • varreg=/^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+((/.[a-zA-Z0-9_-]{2,3}){1,2})$/;@H_502_41@
  • if($.trim($("#memberid").val())==""){@H_502_41@
  • $("#memberIdError").html("fontcolor='red'>用户名不能为空!font>");@H_502_41@
  • flag=false;@H_502_41@
  • }@H_502_41@
  • if($.trim($("#username").val())==""){@H_502_41@
  • $("#userNameError").html(">姓名不能为空!>");@H_502_41@
  • flag=false;@H_502_41@
  • }@H_502_41@
  • if($.trim($("#memberpass").val())==""){@H_502_41@
  • $("#passError").html(">密码不能为空!>");@H_502_41@
  • flag=false;@H_502_41@
  • }else{@H_502_41@
  • if($.trim($("#memberpass").val())!=$.trim($("#memberpass2").val())){@H_502_41@
  • $("#passError2").html(">两次密码不一致!>");@H_502_41@
  • flag=false;@H_502_41@
  • }@H_502_41@
  • }@H_502_41@
  • @H_502_41@
  • if($.trim($("#gender").val())==""){@H_502_41@
  • $("#genderError").html(">性别不能为空!>");@H_502_41@
  • flag=false;@H_502_41@
  • }@H_502_41@
  • varemail=$.trim($("#email").val());@H_502_41@
  • if(email==""){@H_502_41@
  • $("#emailError").html(">电子邮箱不能为空!>");@H_502_41@
  • flag=false;@H_502_41@
  • }else{@H_502_41@
  • varisOk=reg.test(email);@H_502_41@
  • if(!isOk){@H_502_41@
  • $("#emailError").html(">电子邮箱格式不正确!>");@H_502_41@
  • }@H_502_41@
  • }@H_502_41@
  • if($.trim($("#birthday").val())==""){@H_502_41@
  • $("#birthdayError").html(">出生日期不能为空!>");@H_502_41@
  • flag=false;@H_502_41@
  • }@H_502_41@
  • returnflag;@H_502_41@
  • });@H_502_41@
  • @H_502_41@
  • $("#memberid").blur(function(){@H_502_41@
  • $.post("CheckMemberId",{memberid:$("#memberid").val()},@H_502_41@
  • function(data,textStatus){@H_502_41@
  • if(data.isMemberIdUsed=="yes"){@H_502_41@
  • $("#memberIdError").html(">用户名已经被注册,请重新选择一个!>");@H_502_41@
  • }@H_502_41@
  • },"json");@H_502_41@
  • });@H_502_41@
  • functionClearErrorInfo(){@H_502_41@
  • $("#memberIdError").html("");@H_502_41@
  • $("#userNameError").html("");@H_502_41@
  • $("#passError").html("");@H_502_41@
  • $("#passError2").html("");@H_502_41@
  • $("#genderError").html("");@H_502_41@
  • $("#emailError").html("");@H_502_41@
  • $("#birthdayError").html("");@H_502_41@
  • }@H_502_41@
  • @H_502_41@
  • });@H_502_41@
  • //-->@H_502_41@
  • @H_502_41@
  • bodydivclass="demo"><!--提交请求参数的表单-->s:formaction="Register"@H_502_41@
  • name="userform"tablealign="center"captionh3>会员注册tr>@H_502_41@
  • <!--用户名的表单域-->@H_502_41@
  • td>用户名inputtype="text"name="member.memberid"value=""id="memberid"/>spanid="memberidError"spanspanid="memberIdError"<!--用户名的表单域-->@H_502_41@
  • >真实姓名:inputtype="text"name="member.name"value=""id="username"spanid="userNameError"<!--密码的表单域-->@H_502_41@
  • >密码:inputtype="password"name="member.pass"value=""id="memberpass"spanid="passError"<!--密码的表单域-->@H_502_41@
  • >再次密码:inputtype="password"name="password2"value=""id="memberpass2"spanid="passError2"<!--性别的表单域-->@H_502_41@
  • >性别:inputtype="radio"name="member.gender"id="gender"value="男生"/>inputtype="radio"name="member.gender"id="gender"value="女生"/>spanid="genderError"<!--email的表单域-->@H_502_41@
  • >E-mail:inputtype="text"name="member.email"value=""id="email"spanid="emailError"<!--出生日期-->@H_502_41@
  • >出生日期:inputtype="text"name="member.birthday"value=""id="birthday"spanid="birthdayError"tralign="center"tdcolspan="2"inputtype="submit"id="loginSubmit"value="提交"input@H_502_41@
  • type="reset"value="重填"tables:formdiv>@H_502_41@
  • 如上红色标出的为实现了AJAX效果的jquery代码

    3.后记

    使用jquery实现ajax还是比较简单的。本身是一个非常轻量的框架。使用方便,扩张性好,非常推荐使用。

    同时struts2对于ajax的支持还是比较好的,通过这种json的方式很方便的把bean的数据以json格式传递给客户端。

    猜你在找的Ajax相关文章