1. 程式人生 > >SpringMVC 4.1 新特性(一)JSONP的支援

SpringMVC 4.1 新特性(一)JSONP的支援

這裡寫圖片描述

這裡寫圖片描述

這裡寫圖片描述

這裡寫圖片描述

為了啟用@ResponseBodyResponseEntity方法的JSONP支援,需宣告一個@ControllerAdvice的bean,它擴充套件了AbstractJsonpResponseBodyAdvice,如下所示其中constructor引數指示JSONP查詢引數名稱:

package com.somnus.advice;import org.springframework.core.annotation.Order;import org.springframework.web.bind.annotation.ControllerAdvice;import org.springframework
.web.servlet.mvc.method.annotation.AbstractJsonpResponseBodyAdvice;/** * 對使用HttpMessageConverter的@ResponseBody的支援 */@Order(2)/* 需要被掃描 */@ControllerAdvice(basePackages ="com.somnus")//配置你需要路徑下的控制器publicclassJsonpAdviceextendsAbstractJsonpResponseBodyAdvice{publicJsonpAdvice(){super("callback");//指定jsonpParameterNames
}}
@Controller@RequestMapping(value ="response")publicclassResponseBodyBindController{@GetMapping(value="responsebodybind3")@ResponseBodypublicAccount responsebodybind2(String username,String password){Account account =newAccount(username,password);System.out.println("responsebodybind3:"+ account);return
account;}}

這裡寫圖片描述

這裡寫圖片描述

並且值得一提的是,如果你希望可以支援多種引數,都能支援JSONP,構造方法可以設定多個值,如:

  1. @ControllerAdvice(basePackages ="com.somnus")//配置你需要路徑下的控制器
  2. publicclassJsonpAdviceextendsAbstractJsonpResponseBodyAdvice{
  3. publicJsonpAdvice(){
  4. super("callback","jsonp");//指定jsonpParameterNames
  5. }
  6. }

那麼你將驚喜的看到

這裡寫圖片描述

這裡寫圖片描述

<mvc:view-resolvers><mvc:content-negotiation><mvc:default-views><beanclass="org.springframework.web.servlet.view.json.MappingJackson2JsonView"><propertyname="jsonpParameterNames"><set><value>jsonp</value><value>callback</value></set></property></bean></mvc:default-views></mvc:content-negotiation><mvc:jspprefix="/WEB-INF/views/"suffix=".jsp"/></mvc:view-resolvers>
/**
 * <p>.json結尾返回json</p>  
 * <p>.xml結尾返回xml</p>   
 * @author:Somnus
 * @return
 */@RequestMapping(value="viewResolver", method ={RequestMethod.GET})publicModelAndView viewResolver(){ModelAndView mv =newModelAndView();Account account =newAccount();
    account.setUsername(WebUtil.getRequest().getParameter("username"));
    account.setPassword(WebUtil.getRequest().getParameter("password"));
    mv.addObject(account);
    mv.setViewName("viewResolver");return mv;}

相關推薦

SpringMVC 4.1 特性JSONP支援

為了啟用@ResponseBody和ResponseEntity方法的JSONP支援,需宣告一個@ControllerAdvice的bean,它擴充套件了AbstractJsonpResponseBod

.net 4.0 中對多執行緒特性

      在.net 40中對多執行緒的處理增加了很多新的類以方便多執行緒環境下的程式設計實現,首先需要了解的是兩個非常有用的類Lazy<T>和ThreadLazy<T>,通過這兩個類我們可以很方便實現一個單例模式而不用考慮太多的執行緒安全的問題。

Java8特性---Lambda表示式

Java8新特性之Lambda表示式 Lambda的語法格式 語法格式一:無引數,無返回值 語法格式二:有一個引數,並且無返回值 語法格式三:若只有一個引

Spring Boot 2.0 特性:配置繫結 2.0 全解析

在Spring Boot 2.0中推出了Relaxed Binding 2.0,對原有的屬性繫結功能做了非常多的改進以幫助我們更容易的在Spring應用中載入和讀取配置資訊。下面本文就來說說Spring Boot 2.0中對配置的改進。 配置檔案繫結 簡單型別 在S

C++11特性

auto關鍵字 C語言中其實就有auto關鍵字,修飾可變化的量,但是由於平時我們直接使用int a = 10;也是宣告變數,編譯器已經自動幫我們加上了auto關鍵字,是C語言中應用最廣泛的一種型別,也就是說,省去型別說明符auto的都是自動變數! 隨著時代進步,

Swift 4.2 特性

一、概述 Swift 4.2 在 Xcode 10 beta 版上可以使用了,在 Swift 4.1 的基礎上更新了很多語言特性,為 Swift 5 中 ABI 穩定做好準備。 這篇文章包含了 Swift 4.2 中的重大的改變。因為 Swift 4.2 需要

php 7特性:型別的限定

1、標量型別宣告: a.預設:以前的弱型別 b.嚴格:declare(strict_types=1)  //strict_types的值(1或者0),1表示嚴格型別, 0表示弱型別 可以使用的型別引數有:int  float   bool     string inte

C# 4.0特性白皮書[轉]

Contents 目錄 Introduction 簡介 C# 4.0 Dynamic Lookup 動態查詢 The dynamic type dynamic型別 Dynamic operations 動態操作 Runtime lookup 執行時查詢 Exam

Kubernetes1.5特性:Kubelet API增加認證和授權能力

背景介紹 在Kubernetes1.5中,對於kubelet新增加了幾個同認證/授權相關的幾個啟動引數,分別是: 認證相關引數

JDK1.8特性:stream

一.什麼是stream? 1.概述 Java 8 API添加了一個新的抽象稱為流Stream,可以讓你以一種宣告的方式處理資料。 這種風格將要處理的元素集合看作一種流, 流在管道中傳輸, 並且可以在管道的節點上進行處理, 比如篩選, 排序,聚合等。 元素流在管道中經過中間操作的處理,最後由最終操作得到前面處理

ES6語法:函式特性

# ES6 函式 # **引言:** 函式在任何語言中偶讀很重要,java裡面的函式通常叫做方法,其實是一個東西,使用函式可以簡化更多的程式碼,程式碼結構看著更加清晰。今天我們來學學ES6語法中,函式有什麼變化。 雖然現在的有比ES6更高的版本,但是主流一般都是ES6。es6中的函式相對於之前的版本提升

ABAP 7.55 特性

最近幾天,SAP S4 2020對應的ABAP 7.55的新版文件已經出現。本文翻譯了ABAP SQL之外的更新部分。ABAP SQL的更新比較長,會再之後單獨成篇。 譯者水平有限,如有錯誤,請評論指出,謝謝。   本文連結:https://www.cnblogs.com/hhelibeb/p/13

kubernetes1.5特性支援Photon卷外掛

在Kubernetes中卷的作用在於提供給POD持久化儲存,這些持久化儲存可以掛載到POD中的容器上,進而

jdk 1.5 特性 ZZ

JDK 1.5Java 5.0釋出了,許多人都將開始使用這個JDK版本的一些新增特性。從增強的for迴圈到諸如泛型(generic)之類更復雜的特性,都將很快出現在您所編寫的程式碼中。我們剛剛完成了一個基於Java 5.0的大型任務,而本文就是要介紹我們使用這些新特性的體驗。本文不是一篇入門性的文章,而是對這

java8新增特性---Lambda表達式

使用 watermark 成員變量 arr mar .net [] size mark Lambda表達式也成為閉包,是java語言層次上的改變,Lambda同意把函數作為一個方法的參數(函數作為參數傳遞進方法中),或者把代碼看成數據。函數

MySQL 8.0.2復制特性翻譯

ogl 防止 將不 地址 arc -- 等待 download 日誌 譯者:知數堂星耀隊 MySQL 8.0.2復制新特性 MySQL 8 正在變得原來越好,而且這也在我們MySQL復制研發團隊引起了一陣熱潮。我們一直致力於全面提升MySQL復制,通過引入新的和一些有趣

Java 接口 特性Java8

java7 void @override www jdk font default style static   Java8新特性之接口增強   在Java7以及以前的版本中,接口裏的方法都是抽象的,並且不存在靜態方法,屬性默認修飾符是public static final

Zabbix3.4之安裝篇

entos agent roo zabb com serve arc centos 7 mysql- 實驗環境:Centos 71.下載zabbix yum 文件 [root@xiaopeng /]# cd /etc/yum.repos.d/ [root@xiaop

Zabbix 3.4之 安裝篇

systemctl 防火墻 sql數據庫 x86_64 mage system 啟動 輸入密碼 shang 實驗環境:Centos 7```1.下載zabbix yum 文件[root@xiaopeng /]# cd /etc/yum.repos.d/[root@x

kubernets1.10.1--基本操作

k8s kubernets Kubectl管理工具 在node節點部署 # 設置集群項中名為kubernetes的apiserver地址與根證書 kubectl config set-cluster kubernetes --server=https://192.168.1.107:6443 --