引言:作为一个java初学者,对Ajax一直觉得很神奇,也很向往,一直也没有很主动的去学习,所以觉得好像很难。最近被迫应用了下,感觉没有想的那么难,也许是没有涉及的很深的原因吧!在这里主要是用来做唯一性的验证。
jQuery.post:
jsp代码:
function checkYhbh(){
var yhbh = document.getElementById("yhbh").value;
while(yhbh.indexOf(" ")!=-1){
yhbh=yhbh.replace(" ","");
}
jQuery.post("<c:url value='/sysManage/sysManage!checkYhbh.do' />",{yhbh:yhbh},function(data,textStatus){
if(data=='1'){
document.getElementById("val").innerHTML = "该用户编号已存在!" ;
document.getElementById("val").style.color = "red" ;
document.getElementById("toBack").disabled = true;
}else if(yhbh==''){
document.getElementById("val").innerHTML = "编号不能为空!" ;
document.getElementById("val").style.color = "red" ;
document.getElementById("toBack").disabled = true;
}
else{
document.getElementById("val").innerHTML = "√" ;
document.getElementById("val").style.color = "green" ;
document.getElementById("toBack").disabled = false;
}
});
};
代码解释:value='/sysManage/sysManage!checkYhbh.do' 这写的是对于action需要调用的方法。
data是方法(checkYhbh)返回的值。
其他代码就是通过对返回值data的判断去改变页面了,就不多讲了。
action代码:
public String checkYhbh() throws Exception{
int flag=sysUserService.checkYhbh(yhbh);
outString(flag+"");// 返回值
return null;
}
public void outString(String str) {
try {
getResponse().setContentType("text/html;charset=UTF-8");
PrintWriter out = getResponse().getWriter();
out.println(str);
out.flush();
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
jQuery.getJSON:
jsp代码:
function add(yxbz){
var taskName = jQuery.trim(jQuery('#taskName').val());
var taskType = jQuery("#taskTypeId").val();
//验证任务名称是否重复,不重复才提交表单
jQuery.getJSON("<%=path%>/taskManage/taskManage!execute.do?action=hasTaskName&taskName="+taskName,
{}, function(data){
if(data!=null&&data!=""&&data.count>0) {
alert("此任务名称已存在");
return;
} }); }
代码解释:"<%=path%>/taskManage/taskManage!execute.do?action=hasTaskName&taskName="+taskName 这写的是对于action需要调用的方法和需要的参数。
data是方法(hasTaskName)返回的值。
其他代码就是通过对返回值data的判断去改变页面了。
action代码:
//判断任务编号是否存在
public void hasTaskName() {
try
{
int count = taskManageService.getTaskByName(taskName).size();
String rngStr = JSONObject.fromObject("{count:"+count+"}").toString();
outJsonString(rngStr);
} catch (Exception e)
{
e.printStackTrace();
}
}
public void outJsonString(String str) {
try {
getResponse().setContentType("text/javascript;charset=UTF-8");
PrintWriter out = getResponse().getWriter();
out.println(str);
out.flush();
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
对于post和getJSON我也没搞明白这两者的区别,只是知道两者的返回值类型好像不一样,觉得post写起来简单些,所以一直都是用的post,如果有对这两个区别有所了解的还望指点一二。