Heim  >  Artikel  >  Backend-Entwicklung  >  Teilen Sie die Methode des Ajax-Springens zu einer neuen JSP-Seite

Teilen Sie die Methode des Ajax-Springens zu einer neuen JSP-Seite

小云云
小云云Original
2017-12-25 09:26:362432Durchsuche

Ajax kann die Seite teilweise aktualisieren, dh die Teilinformationen der Seite aktualisieren, ohne die gesamte Seite zu aktualisieren. In diesem Artikel wird hauptsächlich die Methode des Ajax-Springens zu einer neuen JSP-Seite vorgestellt. Es hat einen gewissen Referenzwert.

Ich bin auf ein Problem im Projekt 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, wird auf der Originalseite eine Eingabeaufforderung angezeigt.

Ü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 darauf, wie man die gewöhnliche Methode in der Ajax-Rückruffunktion aufruft, die zuvor abgefragten Benutzerdaten an die gewöhnliche Methode (den roten Teil im obigen Pseudocode) übergibt und dann springt Gehen Sie 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. Dies führt dazu, dass die in der URL des Browsers angezeigten Parameter unsicher werden und die Länge der Datenübertragung begrenzt ist.

(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


<body>
  <form id="userForm" action="" method="post">
    <input id="userFormJson" name="userFormJson" type="hidden"/>
  </form>
</body>

Verwandte Empfehlungen:

Detaillierte Einführung in den JSP-Seitensprung

Java-Methode zum Implementieren des JSP-Seitensprungs

Zusammenfassung der JSP-Seitensprungmethode

Das obige ist der detaillierte Inhalt vonTeilen Sie die Methode des Ajax-Springens zu einer neuen JSP-Seite. 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