Heim > Web-Frontend > js-Tutorial > Hauptteil

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

黄舟
Freigeben: 2017-11-01 10:02:42
Original
2531 Leute haben es durchsucht

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, "查询用户失败");
    }  
 }
Nach dem Login kopieren

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("查询用户有误!");
        }
     });    
  } 
Nach dem Login kopieren

Der Schwerpunkt liegt hier auf der Verwendung der Rückruffunktion< von Ajax die gewöhnliche Methode in 🎜> 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 : &#39;POST&#39;,
        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("查询用户有误!");
        }
      });    
   }
Nach dem Login kopieren
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 : &#39;POST&#39;,
        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("查询用户有误!");
        }
      });    
   } 
Nach dem Login kopieren
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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!