Home  >  Article  >  Web Front-end  >  How to jump to a new jsp page with ajax (with code)

How to jump to a new jsp page with ajax (with code)

php中世界最好的语言
php中世界最好的语言Original
2018-03-30 17:22:382096browse

This time I will show you how to jump to a new jsp page with ajax (with code). What are the precautions for ajax to jump to a new jsp page? The following is a practical case. Get up and take a look.

ajax can partially refresh the page, that is, update the partial information of the page without refreshing the entire page.

I encountered a problem in the project: In the user list, when a button is clicked, the user's information needs to be queried. If the query is successful, it will jump to the user details interface; if the query fails, a prompt message will pop up on the original page.

Think of two solutions:

Method 1:

Click the button and call the normal method to query user information. If the query is successful, jump to the user Details page; if the query fails, the redirect calls the method of querying the user list. After the method of querying the user list ends, it jumps back to the user list page and pops up a prompt message, which is equivalent to reloading the user list page.

Method 2:

According to requirements, the user list page cannot be reloaded. Use ajax to call the method of querying user details. If the query is successful, the user's Json string will be returned. If the query fails, an error will be returned.

Background method:

@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 of jsp page:

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("查询用户有误!");
        }
     });    
  } 
The focus here is how to call ordinary methods in the

callback function of ajax, And pass the previously queried user data to the ordinary method (the red part in the pseudo code above), and then jump to the user details page.

(1) Error case:

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("查询用户有误!");
        }
      });    
   }
Cause of error: The window.location.href method is a get method, which will make the parameters displayed in the URL of the browser un

safe, and the length of data transmission is limited.

(2) The stupid method that comes to mind: write a hidden form in the body, copy the found user data to the input in the form in the callback function, and then submit the form and jump to the normal method. , this is the data submitted by the post method, and you can jump to a new page:

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("查询用户有误!");
        }
      });    
   } 
body of the jsp page

<body>
  <form id="userForm" action="" method="post">
    <input id="userFormJson" name="userFormJson" type="hidden"/>
  </form>
</body>
I believe you have mastered the method after reading the case in this article, more Please pay attention to other related articles on the php Chinese website!

Recommended reading:

Ajax+Servlet to implement non-refresh drop-down linkage (with code)

ajax to obtain json data How to use
for undefined

The above is the detailed content of How to jump to a new jsp page with ajax (with code). For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn