日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

SpringMVC中@ResponseBody的相关注意点

發(fā)布時間:2024/4/11 javascript 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SpringMVC中@ResponseBody的相关注意点 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
歡迎支持筆者新作:《深入理解Kafka:核心設(shè)計與實踐原理》和《RabbitMQ實戰(zhàn)指南》,同時歡迎關(guān)注筆者的微信公眾號:朱小廝的博客。

歡迎跳轉(zhuǎn)到本文的原文鏈接:https://honeypps.com/java/spring-mvc-annotation-responsebody/

?

博主習(xí)慣性用SpringMVC的@ResponseBody注解返回JSON字符串,原先采用的方法是GSON將對象轉(zhuǎn)換成json字符串。(需要引入gson-2.x.x.jar的jar包)

?

@ResponseBody@RequestMapping(value = "/cpuUsage.do", produces = "text/html;charset=UTF-8")public String getCpuUsage(@RequestParam(value = "name", required = true) String clusterName){logger.info("/charts/cluster/cpuUsage.do?name=" + clusterName);String ans = null;try{ans = clusterChartsService.getCpuUsage(clusterName);logger.info(ans);}catch (InstantiationException | IllegalAccessException | RuntimeFaultFaultMsg | DatatypeConfigurationException| NullPointerException | ConnectException | XMLStreamException e){logger.error(e.getMessage());}return ans;}

如上代碼所示,Controller的返回值就為String類型。
在getCpuUsage()方法中:

?

?

public String getCpuUsage(String clusterName) throws RuntimeFaultFaultMsg, DatatypeConfigurationException,InstantiationException, IllegalAccessException, ConnectException, XMLStreamException{double value = MoniterWsInterface.getClusterCpuUsageByClusterName(clusterName);Charts charts = new Charts(value, new Date());String ans = Gson.class.newInstance().toJson(charts);return ans;}

采用Gson將對象轉(zhuǎn)換成JSON字符串,然后返回給前端調(diào)用。

?

但是有些讀者可能了解到Spring的@ResponseBody可以自動將對象轉(zhuǎn)換為JSON對象然后返回給前端,這里項目中需要加入兩個jar包:jackson-core-asl-1.9.x.jar和jackson-mapper-asl-1.9.x.jar。然后在springMVC的配置文件中加入:

?

<mvc:annotation-driven />

?

這句即可,也可以顯示的標(biāo)注,即在springMVC的配置文件中加入:

?

<beanclass="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"><property name="messageConverters"><ref bean="mappingJacksonHttpMessageConverter" /></property></bean><bean id="mappingJacksonHttpMessageConverter"class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"><property name="supportedMediaTypes"><list><value>text/html;charset=UTF-8</value></list></property></bean>

這樣就可以采用@ResponseBody注解自動將對象(包括普通對象,List對象,Map對象等)轉(zhuǎn)換為JSON.

?

?

@RequestMapping("/test.do")@ResponseBodypublic List<String> test(){List<String> list = new ArrayList<String>();list.add("zzh1");list.add("zzh1");list.add("zzh2");list.add("字符串");return list;}

如上代碼可以看到直接返回一個List的對象,這里springMVC的@ResponseBody標(biāo)簽會自動采用jackson講對象轉(zhuǎn)換為JSON。

?

這里有個小坑。在@ResponseBody注解上面還有一個@RequestMapping注解,有時候需要顯示的標(biāo)注一些信息,如:

?

@RequestMapping(value = "/test.do", produces = "application/json;charset=UTF-8")

如果這里的produces=“text/html,charset=UTF-8”就會報錯:HTTP406的錯誤。所以這里要特別的小心。

?

好了@ResponseBody的相關(guān)知識先說到這里,以后繼續(xù)補充。

?

歡迎跳轉(zhuǎn)到本文的原文鏈接:https://honeypps.com/java/spring-mvc-annotation-responsebody/

?

歡迎支持筆者新作:《深入理解Kafka:核心設(shè)計與實踐原理》和《RabbitMQ實戰(zhàn)指南》,同時歡迎關(guān)注筆者的微信公眾號:朱小廝的博客。

超強干貨來襲 云風(fēng)專訪:近40年碼齡,通宵達旦的技術(shù)人生

總結(jié)

以上是生活随笔為你收集整理的SpringMVC中@ResponseBody的相关注意点的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。