Heim  >  Artikel  >  Web-Frontend  >  So implementieren Sie Ajax, um zu einer neuen JSP-Seite zu springen

So implementieren Sie Ajax, um zu einer neuen JSP-Seite zu springen

黄舟
黄舟Original
2017-11-01 10:02:422477Durchsuche

Ajax kann die Seite teilweise aktualisieren, dh die Teilinformationen der Seite aktualisieren, ohne die gesamte Seite zu aktualisieren.

Ich bin im Projekt auf ein Problem gestoßen: Wenn in der Benutzerliste auf eine Schaltfläche geklickt wird, müssen die Informationen des Benutzers abgefragt werden. Wenn die Abfrage erfolgreich ist, wird zur Benutzerdetailseite gesprungen ; Wenn die Abfrage fehlschlägt, erscheint ein Popup auf der Originalseite.

Überlegen Sie sich zwei Lösungen:

Methode 1:

Klicken Sie auf die Schaltfläche, um die normale Methode aufzurufen Wenn die Abfrage erfolgreich ist, wird zur Seite mit den Benutzerdetails gesprungen. Wenn die Abfrage fehlschlägt, wird die Methode zum Abfragen der Benutzerliste aufgerufen Öffnen Sie die Benutzerlistenseite erneut und es erscheint eine Eingabeaufforderung, die einem Neuladen der Benutzerlistenseite entspricht.

Methode 2:

Je nach Anforderungen kann die Benutzerlistenseite nicht neu geladen werden. Verwenden Sie Ajax, um die Methode zum Abfragen von Benutzerdetails aufzurufen. Wenn die Abfrage erfolgreich ist, wird die JSON-Zeichenfolge des Benutzers zurückgegeben. Wenn die Abfrage fehlschlägt, wird ein Fehler zurückgegeben.

Hintergrundmethode:

@RequestMapping(value = "searchUser")
 public void searchHome(HttpServletResponse response){
    String result = null;
    ...
    查询用户的方法
    ...
 
    if(查询成功){
       result = JsonUtil.objectToJson(查询结果对象);//结果对象转化成Json字符串,在ajax的结果中跳转到用户详情的处理方法
       AjaxUtil.ajax(response,result);
    }else{//查询失败,返回提示信息
       AjaxUtil.error(response, "查询用户失败");
    }  
 }

Ajax der JSP-Seite:

function searchUser(){
     $.ajax({
        url : "testurl/searchUser",
        cache : false,
        type : 'POST',
        data : {
          查询用的数据,比如用户ID
        },
        success : function(data) {
          var obj = eval("("+data+")"); 
           
          if(obj.success==undefined){//查询成功,跳转到详情页面
             ...
             跳转到用户详情处理方法,将date数据传过去
             ...
          }else if(!obj.success){//查询失败,弹出提示信息
             weui.Loading.info(obj.message);
          }
        },
        error : function(error) {
          weui.alert("查询用户有误!");
        }
     });    
  } 

Der Schwerpunkt liegt hier auf der Verwendung der Rückruffunktion und übergeben Sie die zuvor abgefragten Benutzerdaten an die gewöhnliche Methode (der rote Teil im Pseudocode oben) und springen Sie dann zur Seite mit den Benutzerdetails.

(1) Fehlerfall:

function searchUser(){
      $.ajax({
        url : "testurl/searchUser",
        cache : false,
        type : 'POST',
        data : {
           查询用的数据,比如用户ID
        },
        success : function(data) {
           var obj = eval("("+data+")");
           if(obj.success==undefined){//查询成功,跳转到详情页面,encodeURIComponent编码是为了防止url后面传送的参数中文乱码,在后台处理时需要解码
             window.location.href = "testurl/userForm?userJson="+encodeURIComponent(data);
           }else if(!obj.success){//查询失败,弹出提示信息
              weui.Loading.info(obj.message);
           }
        },
        error : function(error) {
           weui.alert("查询用户有误!");
        }
      });    
   }
Fehlergrund: Die Methode window.location.href ist eine Get-Methode, die dazu führt, dass die Parameter im Browser angezeigt werden URL, nicht

Sicher, und die Länge der Datenübertragung ist begrenzt.

(2) Die dumme Methode, die mir in den Sinn kommt: Schreiben Sie ein verstecktes Formular in den Textkörper, kopieren Sie die gefundenen Benutzerdaten in die Eingabe im Formular in der Rückruffunktion und senden Sie das Formular dann an springen zu Bei der normalen Methode sind dies die von der Post-Methode übermittelten Daten, und Sie können zu einer neuen Seite springen:

function searchUser(){
      $.ajax({
        url : "testurl/searchUser",
        cache : false,
        type : 'POST',
        data : {
           查询用的数据,比如用户ID
        },
        success : function(data) {
           var obj = eval("("+data+")");
           if(obj.success==undefined){//查询成功,跳转到详情页面
             $("#userFormJson").val(data);
             $("#userForm").attr("action","testurl/userForm");
             $("#userForm").submit();
           }else if(!obj.success){//查询失败,弹出提示信息
              weui.Loading.info(obj.message);
           }
        },
        error : function(error) {
           weui.alert("查询用户有误!");
        }
      });    
   } 
Körper der JSP-Seite

Das obige ist der detaillierte Inhalt vonSo implementieren Sie Ajax, um zu einer neuen JSP-Seite zu springen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn