validationEngine.js 的ajax验证中文传值到后台变成乱码了,怎么处理? 5C

页面validationEngine初始化 和ajax验证

<script type="text/javascript">
        $(document).ready(function(){
            $.extend($.validationEngineLanguage.allRules,{ "ajaxRmCustomerName": {  
                  "url": "$ctx/rmCustomer/ajaxRmCustomerName",  
                  "alertTextLoad":"* 检查中, 请稍后...",   
                  "alertText":"* 客户名称已存在."
                  }  
            });
            $("#rmCustomerAddForm").validationEngine('attach', {
                focusFirstField:true,//验证不通过时给第一个不通过的获取焦点
                validationEventTrigger : "blur",//触发验证的方式为失去焦点
                autoPositionUpdate : true,//是否自动(根据窗口大小)调整提示层的位置
                ajaxFormValidation : false,//设置为true,默认使用 Ajax 验证表单(验证时默认get方式提交表单数据)
                showOneMessage : true,//只显示一个错误提示
                promptPosition : "topRight",//提示框位置
                autoHidePrompt : true,//为true时,自动隐藏提示信息
                autoHideDelay : 2000//延时多少时间隐藏提示信息
            });

        });
    </script>

页面文本框和验证


<label class="col-sm-3 control-label no-padding-right">
                                                    客户名称: </label>

                                                <div class="col-sm-4">
                                                    <input type="text" class="form-control" id="name"
                                                        name="name" data-validation-engine="validate[required,funcCall[validationillegalCharacter],maxSize[20],ajax[ajaxRmCustomerName]]"/>
                                                </div>

后台代码

 /**
     * 验证名字是否存在
     * @param rmUser
     */

@RequestMapping(value = "/ajaxRmCustomerName", method = { RequestMethod.POST,
            RequestMethod.GET })
    @ResponseBody
    public  String ajaxRmCustomerName(String fieldId,String fieldValue) {
        boolean flag = false;
        if(fieldValue!=null&&!fieldValue.equals("")){
            RmCustomer rmCustomer = new RmCustomer();
            rmCustomer.setName(fieldValue);
            List<RmCustomer> uc = rmCustomerService.selectCutomerByName(rmCustomer);
            if(uc==null||uc.size()==0) flag = true;
        }
        JSONArray json = new JSONArray();
        json.add(fieldId);
        json.add(flag);
        return json.toString();
    }

页面输入
(https://img-ask.csdn.net/upload/201803/09/1520575860_428878.png)

后台接收
(https://img-ask.csdn.net/upload/201803/09/1520575876_301092.png)

4个回答

没发过代码块,发乱了,上面的js是页面加载验证的,中间的标签是页面的文本框和验证属性,下面是后台代码,前台输入的中文,后台接收的时候是乱码的,这种我不知道应该在哪里控制字符集.求大神指导.图片说明

图片说明 上面的是页面输入 ,这张是后台取值

OK了,我找到解决办法了,
图片说明
把js里面的get改成post就不乱码了

图片说明

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐