struts2+jquery實現ajax

這是自己做的一個小例子,儘管實現有些繁雜,但功能已經完全實現,如果大家看了之後有好的實現方式,請指正

jsp中有登錄的form表單:
  <form id="userform" action="" method="post" name="testlogin">
        <s:textfield id="name" name="user.name" label="用戶名"></s:textfield><br/>
        <s:password id="password" name="user.password" label="密碼"></s:password><br/>
        <input type="button" value="登錄" onclick="login();"/>
        <input type="button" value="重置" onclick="reset();"/>
  </form>
struts的Action
public class MainAction extends ActionSupport {
    private User user;
    private String msg;
   
    public String getMsg() {
        return msg;
    }

    public void setMsg(String msg) {
        this.msg = msg;
    }

    public User getUser() {
        return user;
    }

    public void setUser(User user) {
        this.user = user;
    }
   
    public String index(){
        return SUCCESS;
    }
   
    public String login(){
        System.out.println(user.getName());
        return SUCCESS;
    }
   
    public String check(){
        this.msg = "0";
        if(user.getName().equals("abc")){
            this.msg = "1";
        }else{
            this.msg = "0";
        }
        return SUCCESS;
    }
}
struts.xml文件針對ajax請求的Action的配置
<package name="" extends="json-default" namespace="">
    <action name="" class="" method="">
        <result name="success" type="json"></result>
    </action>
</namespace>
利用jquery實現ajax:
    function login(){
      var params = $('#userform').serialize();//利用jquery將表單序列化
      //jquery發送ajax請求
      $.ajax({
        url: '',
        type: 'post',
        dataType: 'json',
        data: params,
        success: doCheckSuccess
      });
    }
    function doCheckSuccess(data){
      if(data.msg == 1){
        document.testlogin.submit();//testlogin爲form的name屬性
      }else{
        alert("用戶名已存在");
      }
    }
整個請求過程大概如下:
    1、首先按照url和請求方式將序列化好的數據發送至對應的action,被序列化的params是name=123&password=123這樣的
    2、action在處理完成之後將msg以json的形式發送至客戶端,由客戶端的js驗證

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章