`

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

阅读更多

http://blog.csdn.net/abing37/archive/2009/12/01/4916751.aspx

1.       目标

目标使用 AJAX 实现如下效果:

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

注册失败

 

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

注册成功

 

 

2.       实现过程

 

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

主要工作如下

1. 开发 CheckMemberIdAction:

package com.contentsearch.action;

 

import com.opensymphony.xwork2.ActionSupport;

 

public class CheckMemberIdAction extends ActionSupport {

 

         private String isMemberIdUsed;

 

         private String memberid;

 

         public String getMemberid() {

                   return memberid;

         }

 

         public void setMemberid(String memberid) {

                   this.memberid = memberid;

         }

 

         public String getIsMemberIdUsed() {

                   return isMemberIdUsed;

         }

 

         public void setIsMemberIdUsed(String isMemberIdUsed) {

                   this.isMemberIdUsed = isMemberIdUsed;

         }

        

         // 处理用户请求的 execute 方法

         public String execute() throws Exception {

                   if ("sky".equals(memberid)) {

                            this.setIsMemberIdUsed("yes");

                   } else {

                            this.setIsMemberIdUsed("no");

                   }

                   return SUCCESS;

         }

}

 

2: 开发 Member Pojo

package com.contentsearch.dao.pojo;

 

public class Member {

         private long id;

         private String memberid;

         private String name;

         private String pass;

         private String email;

         private String gender;

         private String birthday;

 

         public String getMemberid() {

                   return memberid;

         }

 

         public void setMemberid(String memberid) {

                   this.memberid = memberid;

         }

 

         public long getId() {

                   return id;

         }

 

         public void setId(long id) {

                   this.id = id;

         }

 

         public String getName() {

                   return name;

         }

 

         public void setName(String name) {

                   this.name = name;

         }

 

         public String getPass() {

                   return pass;

         }

 

         public void setPass(String pass) {

                   this.pass = pass;

         }

 

         public String getEmail() {

                   return email;

         }

 

         public void setEmail(String email) {

                   this.email = email;

         }

 

         public String getGender() {

                   return gender;

         }

 

         public void setGender(String gender) {

                   this.gender = gender;

         }

 

         public String getBirthday() {

                   return birthday;

         }

 

         public void setBirthday(String birthday) {

                   this.birthday = birthday;

         }

}

 

3. 配置 Struts.xml

<?xml version="1.0" encoding="GBK"?>

         <!-- 指定 Struts 2 配置文件的 DTD 信息 -->

<!DOCTYPE struts PUBLIC

       "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"

       "http://struts.apache.org/dtds/struts-2.0.dtd">

         <!-- struts Struts 2 配置文件的根元素 -->

<struts>

         <!-- Struts 2 Action 必须放在指定的包空间下定义 -->

         <package name="strutsqs" extends="struts-default">

                   <!-- 定义 login Action, Action 的实现类为 lee.Action -->

                   <action name="Login" class="com.contentsearch.action.LoginAction">

                            <!-- 定义处理结果和资源之间映射关系。 -->

                            <result name="input">/login.jsp</result>

                            <result name="error">/error.jsp</result>

                            <result name="success">/welcome.jsp</result>

                   </action>

                  

         </package>

         <package name="strutsjson" extends="json-default" >

                   <action name="CheckMemberId" class="com.contentsearch.action. CheckMemberIdAction" >

                            <result type="json" />

                   </action>

         </package>

         <constant name="struts.objectFactory" value="spring" />

 

</struts>

 

4. 开发 register.jsp

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

         pageEncoding="UTF-8"%>

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

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title>Insert title here</title>

<link type="text/css" href="css/jquery-ui-1.7.custom.css"

         rel="stylesheet" />

<style type="text/css">

body {

         font: 62.5% "Trebuchet MS", sans-serif;

         margin: 50px;

}

 

.demo {

         align: center;

         border: 1px solid #CA8EFF;

         width: 500px;

         height: 400px;

         padding: 10px;

         float: center;

         background: #E0E0E0;

}

</style>

<script src="js/jQuery/jquery-1.3.2.min.js"></script>

<script type="text/javascript">

$(document).ready(function() {

             ClearErrorInfo();

                   $("#loginSubmit").click(function() {

                     ClearErrorInfo();

                     var flag=true;

                     var reg = /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+((\.[a-zA-Z0-9_-]{2,3}){1,2})$/;

          if($.trim($("#memberid").val())==""){

              $("#memberIdError").html("<font color='red'> 用户名不能为空! </font>");

              flag=false;

                      }

          if($.trim($("#username").val())==""){

              $("#userNameError").html("<font color='red'> 姓名不能为空! </font>");

              flag=false;

                      }

          if($.trim($("#memberpass").val())==""){

              $("#passError").html("<font color='red'> 密码不能为空! </font>");

              flag=false;

                      }else{

                             if($.trim($("#memberpass").val())!=$.trim($("#memberpass2").val())){

                                 $("#passError2").html("<font color='red'> 两次密码不一致! </font>");

                                 flag=false;

                                        }

                      }

                     

          if($.trim($("#gender").val())==""){

              $("#genderError").html("<font color='red'> 性别不能为空! </font>");

              flag=false;

                      }

                     var email=$.trim($("#email").val());

          if(email==""){

              $("#emailError").html("<font color='red'> 电子邮箱不能为空! </font>");

              flag=false;

                      }else{

                               var isOk=reg.test(email);

               if(!isOk){

                         $("#emailError").html("<font color='red'> 电子邮箱格式不正确! </font>");

               }

                      }

          if($.trim($("#birthday").val())==""){

              $("#birthdayError").html("<font color='red'> 出生日期不能为空! </font>");

              flag=false;

                      }

                   return flag;

         });    

 

                   $("#memberid").blur(function() {

          $.post("CheckMemberId", { memberid:$("#memberid").val()},

                                    function (data, textStatus){

                                      if(data.isMemberIdUsed=="yes"){

                                               $("#memberIdError").html("<font color='red'> 用户名已经被注册,请重新选择一个! </font>");

                                      }

                                    }, "json");

                   });

    function ClearErrorInfo(){

             $("#memberIdError").html("");

             $("#userNameError").html("");

             $("#passError").html("");

             $("#passError2").html("");

             $("#genderError").html("");

             $("#emailError").html("");

             $("#birthdayError").html("");

    }

                  

});

</script>

</head>

 

<body>

<div class="demo"><!-- 提交请求参数的表单 --> <s:form action="Register"

         name="userform">

         <table align="center">

                   <caption>

                   <h3> 会员注册 </h3>

                   </caption>

                   <tr>

                            <!-- 用户名的表单域 -->

                            <td> 用户名: </td>

                            <td><input type="text" name="member.memberid" value="" id="memberid"/><span id="memberidError"></span><span id="memberIdError"></span></td>

                   </tr>

                   <tr>

                            <!-- 用户名的表单域 -->

                            <td> 真实姓名: </td>

                            <td><input type="text" name="member.name" value="" id="username"/><span id="userNameError"></span></td>

                   </tr>

                   <tr>

                            <!-- 密码的表单域 -->

                            <td> 密码: </td>

                            <td><input type="password" name="member.pass" value="" id="memberpass"/><span id="passError"></span></td>

                   </tr>

                   <tr>

                            <!-- 密码的表单域 -->

                            <td> 再次密码: </td>

                            &l

分享到:
评论
2 楼 henuhaigang 2013-05-28  
[color=darkred]jk[size=x-small]l[/size]jkj[/color][align=center][/

    [*]
  align]  
1 楼 tengfeineu 2011-10-12  

相关推荐

    最新Struts2+jq+ajax+json 学会总要4步‵‵超级简单,里面包含实例

    最新Struts2.3.8 + jquery + ajax + json 学会struts+jq+ajax+json只要4步‵‵经过作者的总结超级简单 1. 导入struts2 及json包 asm-3.3.jar asm-commons-3.3.jar asm-tree-3.3.jar commons-fileupload-1.2.2.jar...

    Java学习笔记-个人整理的

    \contentsline {chapter}{Contents}{2}{section*.1} {1}Java基础}{17}{chapter.1} {1.1}基本语法}{17}{section.1.1} {1.2}数字表达方式}{17}{section.1.2} {1.3}补码}{19}{section.1.3} {1.3.1}总结}{23}{...

    JAVA上百实例源码以及开源项目

     一个Java+ajax写的登录实例,附有JAVA源文件,JAVA新手朋友可以学习一下。 JAVA+JSP的聊天室 8个目标文件 简单 JavaScript万年历 显示出当前时间及年份,还可以选择年份及月份和日期 Java编写的HTML浏览器 一个...

    java开源包2

    JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (&lt;jcaptcha:image label="Type the text "/&gt; ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码...

    Java面试宝典2020修订版V1.0.1.doc

    11、什么是java序列化,如何实现java序列化? 59 12、编写一个程序,将d:\java目录下的所有.java文件复制到d:\jad目录下,并将原来文件的扩展名从.java改为.jad。 60 13、java中有几种类型的流?JDK为每种类型的流...

    java开源包3

    JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (&lt;jcaptcha:image label="Type the text "/&gt; ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码...

    java开源包4

    JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (&lt;jcaptcha:image label="Type the text "/&gt; ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码...

    java开源包1

    JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (&lt;jcaptcha:image label="Type the text "/&gt; ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码...

    java开源包11

    JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (&lt;jcaptcha:image label="Type the text "/&gt; ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码...

    java开源包6

    JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (&lt;jcaptcha:image label="Type the text "/&gt; ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码...

    java开源包5

    JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (&lt;jcaptcha:image label="Type the text "/&gt; ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码...

    java开源包10

    JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (&lt;jcaptcha:image label="Type the text "/&gt; ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码...

    java开源包8

    JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (&lt;jcaptcha:image label="Type the text "/&gt; ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码...

    java开源包7

    JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (&lt;jcaptcha:image label="Type the text "/&gt; ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码...

    java开源包9

    JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (&lt;jcaptcha:image label="Type the text "/&gt; ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码...

    JAVA上百实例源码以及开源项目源代码

     一个Java+ajax写的登录实例,附有JAVA源文件,JAVA新手朋友可以学习一下。 JAVA+JSP的聊天室 8个目标文件 简单 JavaScript万年历 显示出当前时间及年份,还可以选择年份及月份和日期 Java编写的HTML浏览器 一个...

    java开源包101

    JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (&lt;jcaptcha:image label="Type the text "/&gt; ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码...

    Java资源包01

    JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (&lt;jcaptcha:image label="Type the text "/&gt; ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码...

    SYPRO示例项目源码和EasyUI入门视频教程

    sshe示例程序(struts2+spring3+hibernate4+easyui)(Maven构建) easyui1.2.6整站文件.zip jquery1.7.2中文API修正版.chm jquery.easyui-1.2.5源码未压缩版.rar jquery-easyui-1.2.6.zip JQuery-esqyUI中文-1.2.5API....

Global site tag (gtag.js) - Google Analytics