前端JQuery Validate Remote后台验证email电子邮箱,后台是SpringMVC,JSON的email参数传到Controller中,@字符变成了%40
springmvc.xml配置文件
前端代码
"email" : {
required : true,
rangelength : [5, 100],
emailFormatCheck : true,
// 验证用户电子邮箱是否存在
remote : {
url : "user/checkAddEmail",
type : "POST",
async : false,
contentType: "application/json;charset=UTF-8",
dataType : "JSON",
data:{
email : function() {
return $("#email").val();
}
}
}
}
前端页面验证
后台代码:
/**
* @description 添加用户信息时,验证用户输入Email是否正确
* @param email
* @return
*/
@RequestMapping(value = "/checkAddEmail", method = RequestMethod.POST, headers = "Accept=application/json;charset=UTF-8")
@ResponseBody
public boolean checkAddEmail(@RequestBody String email) {
try {
if (null != email && !"".equals(email)) {
UserBase user = new UserBase();
user.setEmail(email.substring(email.indexOf("=") + 1).trim());
if (0 < userBaseService.findList(user).size()) {
return false;
} else {
return true;
}
} else {
return true;
}
} catch (Exception e) {
e.printStackTrace();
return true;
}
}
email电子邮箱JSON参数传入后台之后,接受的email的@字符变成了%40
contentType: "application/json;charset=UTF-8",
headers = "Accept=application/json;charset=UTF-8"
email = new String(email.getBytes("ISO-8859-1"), "UTF-8");
我用了这些转码的方法都尝试变了,也没有解决!
哪位大牛遇到过这个问题,知道这个问题是怎么回事,这个问题如何解决!
小弟在这里谢谢各位仁兄了!!!