同步提交表单和异步提交表单

同步提交:

 html:  <form id="form" method='"post" action="${ctx}/user/saveUser">    

<input type="text" id="name" name="name" value="${user.name}"/>    

<input type="text" id="age" name="age" value="${user.age}"/>

</form>

<input id="save-btn" type="submit" value="保存"/>

controller:  @RequestMapping(value = "/saveUser",method = RequestMethod.POST)    

public String saveUser(User user,HttpServletRequest request, HttpServletResponse response) throws Exception {        

         try{            

                     userService.save(user);        

            }catch (Exception e){            

                      e.printStackTrace();        

            }        

              return "redirect:/user/userList";    

              } 

ajax异步提交:  注意:form标签去掉method和action属性,保存按钮input标签类型变为button  * controller方法中返回String,则ajax中dataType类型为’text’, *  

html:  <form id="form">    

<input type="text" id="name" name="name" value="${user.name}"/>    

<input type="text" id="age" name="age" value="${user.age}"/>

</form>

<input id="save-btn" type="button" value="保存"/>

<script>    

$(document).ready(function() {             //表单异步提交            

$("#save-btn").on("click",function(){                

$.ajax({                      

type: 'post',                      

data: $('#form').serialize(),  

async:false,                    

url: '${ctx}/user/saveUser',                    

cache:false,                      

dataType:'text',                      

success: function (data) {                        

        if("fail"!=data){                            

    layer.msg('保存成功');                            

   window.location.href = "${ctx}/user/userList?userId="+data;                        

}else{                            

layer.msg('保存失败');                        

}                    

}                    

})            

})

</script>

 controller:  @RequestMapping(value = "/saveUser",method = RequestMethod.POST)    

public String saveUser(User user,HttpServletRequest request, HttpServletResponse response) throws Exception {        

          try{            

                   User user = userService.save(user);            

                   return user.getUserId();        

               }catch (Exception e){            

                  e.printStackTrace();            

                   return "fail";        

                }    

}

ajax同步提交:如果将async改成true(true同步,false异步),不等服务器返回就会直接返回false,写这类函数的时候要注意把async设置成false

 同步提交是指等待服务器响应后在进行后面的操作,异步提交不用等待服务器响应就会进行后面的操作

同步和异步的区别:

猜你喜欢

转载自my.oschina.net/u/3855568/blog/1816019