java中的ajax的二级联动和验证用户名是否存在

本文介绍Ajax在前后端交互中的两个实际应用场景:一是通过Ajax实现二级联动,动态加载单位名称列表;二是利用Ajax验证用户名是否已存在。

后台中的代码

//ajax二级联动,根据所属单位,显示单位名称

    public void findByJctID() {
        String jctID = request.getParameter("jctID");
        List<ElecSystemDDL> slist = elecSystemDDLService.findSystemDDLByKeyword(jctID);
        //ajax数据前后台交互,要使用json或者字符串
        Gson gson=new Gson();
        String json = gson.toJson(slist);
        //使用打印流将json数据打印到前台,json是一个json类型的字符串,前台需要转换为js可以辨认的json类型
        PrintWriter writer=null;
        response.setCharacterEncoding("utf-8");
        try {
            writer = response.getWriter();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        writer.print(json);
        writer.close();

    }

前台获取后台

//ajax的二级联动,使用选择的所属单位,查询该所属单位下对应的单位名称列表
    function findJctUnit(o){
        
        //货物所属单位的文本内容
        var jct = $(o).find("option:selected").text();
        $.post("${pageContext.request.contextPath }/system/elecUserAction_findByJctID.do",{"jctID":jct},function(data2){
               //先删除单位名称的下拉菜单,但是请选择要留下
                  var data=JSON.parse(data2);
              //  var data=eval("("+data2+")");
               //先删除单位名称的下拉菜单,但是请选择要留下
               $("#jctUnitID option").remove();
            if(data!=null && data.length>0){
                for(var i=0;i<data.length;i++){
                          var ddlCode = data[i].ddlCode;
                          var ddlName = data[i].ddlName;
                          //添加到单位名称的下拉菜单中
                          var $option = $("<option></option>");
                          $option.attr("value",ddlCode);
                          $option.text(ddlName);
                          $("#jctUnitID").append($option);
                   }
            }
        });
        
    }
   

Java中的验证用户名是否存在

后台中的代码

//ajax验证用户名是否存在
    public void checkUser(){
        //获取页面上的条件
        String logonName=request.getParameter("logonName");
        /**
         * 如果message==1,说明登录名为空,此时不能执行保存
         * 如果message==2,说明登录名在数据库表中已经存在记录(list.size()>0),此时不能执行保存
         * 如果message==3,说明登录名在数据库表中不存在记录(list.size()==0),此时可以执行保存
         */
        String message=elecUserService.findByName(logonName);
        PrintWriter writer=null;
        response.setCharacterEncoding("utf-8");
        try {
            writer=response.getWriter();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        writer.print(message);
        writer.close();
    }

前台中得ajax调用

 /**校验登录名是否出现重复*/
    function checkUser(o){
        var logonName = $(o).val();
        //以登录名作为查询条件,查询该登录名是否在数据库表中存在记录
        $.post("${pageContext.request.contextPath }/system/elecUserAction_checkUser.do",{"logonName":logonName},function(data){
            //如果栈顶是模型驱动的对象,取值的时候应该使用data.message的方式
            if(data=="1"){
                $("#check").html("<font color='red'>用户名不能为空</font>");
                $("#logonName").focus();
                $("#BT_Submit").attr("disabled","none");
            }
            if(data=="2"){
                $("#check").html("<font color='red'>用户名已存在</font>");
                $("#logonName").focus();
                $("#BT_Submit").attr("disabled","none");            
                        }
            if(data=="3"){
                $("#check").html("<font color='green'>用户名正确</font>");
 
                $("#BT_Submit").attr("disabled","");    
            }
        });
    }


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值