jquery的ajax实现登录名的校验

第一步:引入插件包

第二步:在struts.xml中定义:

修改:

<package name="system" namespace="/system" extends="struts-default">

修改成

<package name="system" namespace="/system" extends="json-default">

 

在struts.xml中添加:

<result name="checkUser" type="json">

        <!-- 表示message的值返回页面,不再是一个json的数据结果 -->

        <param name="root">message</param>

        <!-- 对象中的某个属性被json -->

        <param name="includeProperties">message</param>

</result>

 

第三步:页面的写法

/**校验登录名是否出现重复*/

    function checkUser(o){

    //alert(o.value);//dom的写法

    //alert($(o).val());//jquery的写法

    var logonName = $(o).val();

    //以登录名作为查询条件,查询该登录名是否在数据库表中存在记录

    $.post("elecUserAction_checkUser.do",{"logonName":logonName},function(data){

               //如果栈顶是模型驱动的对象,取值的时候应该使用data.message的方式

               //如果栈顶是模型驱动的对象的某个属性,取值的时候应该使用data即可

                    if(data==1){

                                     $("#check").html("<font color='red'>登录名不能为空</font>");

                                     o.focus();

                                     $("#BT_Submit").attr("disabled","none");

                            }

                            else if(data==2){

                                     $("#check").html("<font color='red'>登录名已经存在</font>");

                                     $(o)[0].focus();

                                     $("#BT_Submit").attr("disabled","none");

                            }

                            else{

                                     $("#check").html("<font color='green'>登录名可以使用</font>");

                                     $("#BT_Submit").attr("disabled","");

                            }

    });

    }

 

第四步:在Action类的代码中定义:将String类型的message放置到栈顶:例如

public String checkUser(){

        //1:获取页面传递的登录名,以登录名作为条件,查询用户表,返回message

        String logonName = elecUser.getLogonName();

        /**

         *    如果message==1,说明登录名为空,此时不能执行保存

               如果message==2,说明登录名在数据库表中已经存在记录(list.size()>0),此时不能执行保存

               如果message==3,说明登录名在数据库表中不存在记录(list.size()==0),此时可以执行保存

         */

        String message = elecUserService.checkUserByLogonName(logonName);

        //将标识message的值放置到栈顶的对象,返回到页面上

        elecUser.setMessage(message);

        return "checkUser";

    }

 

第五步:在Service类的代码中查询message标识的值

public String checkUserByLogonName(String logonName) {

        String message = "";

        if(StringUtils.isNotBlank(logonName)){

            String condition = " and o.logonName=?";

            Object [] params = {logonName};

            //查询获取用户信息

            List<ElecUser> list = elecUserDao. onditionNoPage(condition, params, null);

            if(list!=null && list.size()>0){ findCollectionByC

                message = "2";

            }

            else{

                message = "3";

            }

        }

        else{

            message = "1";

        }

        return message;

}

posted @ 2016-07-18 19:46  kimi9py  阅读(204)  评论(0编辑  收藏  举报