1. 程式人生 > >springmvc modelview 返回資料與頁面互動處理

springmvc modelview 返回資料與頁面互動處理

springmvc controller層在與前端頁面進行資料互動時,根據頁面處理需要對modelview響應資料做處理,
舉例說明:

@RequestMapping(params = "action=jumpEduproduct")
    public void getEduProduct(HttpServletRequest request, HttpServletResponse response) throws IOException {

        logger.info("action=jumpEduproduct=====>");
        Map<String,String> paramsMap = new HashMap<String, String>();
String jsonStr = ""; JSONObject jsonObject = new JSONObject(); response.setHeader("Content-type", "text/html;charset=UTF-8"); response.setCharacterEncoding("UTF-8"); // ====處理方式1: if (StringUtils.isBlank(userId)) { logger.error("error userid!"
); jsonObject.put("ret",-1); jsonObject.put("msg", "使用者ID不能為空!"); response.getWriter().print(jsonObject.toString()); return; } if (resq.getRet() != 0){ jsonObject.put("msg","處理異常, 返回錯誤資料!"
); jsonObject.put("ret",resq.getRet()); jsonObject.put("msg", resq.getMsg()); response.getWriter().print(jsonObject.toString()); return; } ........ // ====處理方式2: YdEduResp resq = JSON.parseObject(jsonStr, YdEduResp.class); if ((appFlag == 0 || appFlag == 1)){ if (resq.getRet() == 0){ directUrl = resq.getCallbackurl() + "&accesstoken=" + resq.getAccesstoken() + "&random=" + Math.random(); System.out.println("success direct:" + directUrl); response.getWriter().write("<script>window.location.href=\'" + directUrl + "\';</script>"); // response.getWriter().write("<script>window.open(\'" + directUrl + "\','_blank')</script>"); return; }else{ directUrl="http://www.baidu.com"; System.out.println("==>fail direct2:" + directUrl+"__fail reason:"+resq.getMsg()); response.getWriter().write("<script>window.alert(\'介面響應異常,返回XXX首頁!\');window.location.href=\'" + directUrl + "\';</script>"); return; }

對應方式1 對應某頁面page發起請求,響應json物件資料到page頁面,page進行解析處理:

 page頁面先發起ajax請求:
   $('.govdiv').click(function(){
//          $.getScript(  $(this).attr('data-url') );
            $.ajax({
                url : $(this).attr('data-url'),
                type : "POST",
                data : JSON.stringify(data), //轉JSON字串
                dataType: 'json',
                contentType:'application/json;charset=UTF-8',
                success : function(result) {
                    dispatch(result);
                }
            });

result為controller的響應資料,click()提交請求響應成功後對響應資料進行解析:

function dispatch(data){
        if(data.ret!=0)
            alert(data.msg);
        else{
            if (data.accessToken != null && data.accessToken != ""){
//              window.location.href = data.callbackurl +"&accesstoken=" + data.accesstoken+"&tmp="+Math.random();
                window.open(data.callbackurl +"&accesstoken=" + data.accessToken+"&tmp="+Math.random());
            }else{
//              window.location.href = data.callbackurl;
                window.open(data.callbackurl);
            }
        }

對應方式2:
直接開啟新視窗或重定向到某頁面,不與頁面進行互動,一般用於異常場景,響應資料不需要前端解析直接對使用者進行提示。

相關推薦

springmvc modelview 返回資料頁面互動處理

springmvc controller層在與前端頁面進行資料互動時,根據頁面處理需要對modelview響應資料做處理, 舉例說明: @RequestMapping(params = "action=jumpEduproduct") publi

springMVC返回資料頁面的幾種方式

Spring MVC返回資料到頁面有幾種不同的方式,它們各自適用的情況也不同,下面簡單總結一下。 對於每種方式都給出Controller中的相應方法。 首先還是頁面user_add.jsp。它既是發

spring boot 統一返回資料及全域性異常處理

記錄關於spring boot 統一返回資料及全域性異常處理的操作實現。 一、統一返回資料 1、定義一個超類:BaseResponseVo @Data @NoArgsConstructor public class BaseResponseVo{ protected Integer r

react-native 頁面B to 頁面C,頁面C返回資料頁面B

/** * Sample React Native App * https://github.com/facebook/react-native * * @format * @flow */ import React, {Component} from 'react'; import

jsp頁面中比較“接收資料頁面迴圈資料”是否相等

頁面中關係運算符:  -lt    小於 -le     小於或者等於 -gt    大於 -ge    大於或者等於 -eq    等於 -ne    不等於  判空:<c:if test="${empty&

介面返回資料資料資料的對比、資料表之間的拆分重組對比

import pymysql import datetime import json import decimal import requests import warnings """ 超市供應鏈資料測試:1、product表和supplier表拆分重組與supply_introduce表對比

android webview 中網頁資料js互動

html.getSettings().setJavaScriptEnabled(true);html.getSettings().setDefaultTextEncodingName("UTF-8");html.getSettings().setLayoutAlgorith

html5 canvas繪製圓形印章,以及頁面互動

來源:https://www.cnblogs.com/hello-word1/p/5137626.html <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="UTF

winform中執行cmd命令幫助類,提取有效輸出資料、錯誤返回資料實時顯示命令輸出(可傳參)

寫的東西用到了執行cmd命令,於是自己擴充寫了個幫助類,實時顯示命令輸出可能對大家最為有用,此方法與網上流傳的不同點在於可以在命令輸出完成後回撥,可傳入一個object型別的引數。 程式碼: using System; using System.Collections.G

java_springMVC_返回資料頁面

1. 返回資料到頁面方式一:使用setAttribute。@RequestMapping(method = RequestMethod.GET, value = "/dologin")public String dologin(HttpServletRequest reque

SpringMVC返回頁面資料

1. HttpServletRequest request 直接使用request.setAttribute(Key, Value); jsp頁面: <form action="user/add1.do" method="post"> 賬號:<input typ

Struts2AJAX互動返回JSON資料

首先需要匯入六個jar包 這是jsp程式碼 function queryData(pageNum) { $.ajax({ url:"queryNextPage", data:{

layui進行分頁處理,後端返回資料沒有count欄位,需要單獨獲取再新增到資料中,再進行項渲染,另有layui表格資料增刪改查前後端互動

整體效果圖如下: (1)分頁前端介面處理 (2)分頁後端的資料處理 具體程式碼如下: 前端介面程式碼:包括分頁,增刪改查,重新整理(搜尋功能還沒做,後端是java程式碼) <!DOCTYPE html> <html> <hea

小程式資料處理頁面跳轉

一、獲取各種值 設定data值: xx.js Page({ data: { text: "This is page data.", sliderOffset: 0, sliderLeft: 0, state:{ genre:[],

Struts2框架頁面資料互動(2)--OGNL表示式&ValueStack

3、Struts2框架與頁面的資料互動(2)--OGNL表示式&ValueStack 上接Struts2礦街與頁面的資料互動(1)--資料封裝:https://blog.csdn.net/biggerchong/article/details/84564912 目錄

Struts2框架頁面資料互動(1)--資料封裝

2、Struts2框架與頁面的資料互動(1)--資料封裝 上接Sturts2框架入門學習:https://blog.csdn.net/biggerchong/article/details/84540183 目錄 2、Struts2框架與頁面的資料互動 2.1

springMVC使用modelAndView返回介面資料,jstl迴圈list

1.必要的maven依賴 <!-- JSP相關 --> <dependency> <groupId>jstl</groupId> <artifactId>jstl</artifactId&g

【SpringBoot】Http請求統一異常(返回資料)處理單元測試

對返回資料格式的統一 首先規定一下錯誤的輸出格式: { "code": 1, "msg": "提示", "data": null } data是一個物件 首先定義一個http請求返回的類 package cn.

springMVCjsp頁面互動1

突然想寫這個的目的就是網上寫的教程大多都不全,不夠系統,想借此來進行系統的學習,讓初學者不在迷茫,此外也可以當做自己的移動筆記,讓自己對這些框架更加熟悉,如有疑問歡迎大家來交流。 接下來要寫的主要是springMVC與jsp的互動,springMVC與安卓

Delegate 類 概念 MVC模式不同,model/view結構沒有用於使用者互動的完全獨立的元件。一般來講, view負責把資料展示給使用者,也處理使用者的輸入。為了獲得更多的靈性性,互動通過d

Delegate  類 概念 與MVC模式不同,model/view結構沒有用於與使用者互動的完全獨立的元件。一般來講, view負責把資料展示給使用者,也處理使用者的輸入。為了獲得更多的靈性性,互動通過delegagte執行。它既提供輸入功能又負責渲染view中的每個