亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

使用SpringMVC返回json字符串的實例講解

發布時間:2020-10-15 16:16:45 來源:腳本之家 閱讀:128 作者:過自己想過的生活 欄目:編程語言

最近開始接觸SpringMVC這個框架,這個框架使用起來很方便,框架搭起來之后,寫起代碼幾乎都是一個模式。當然要走到這一步必須保證你的SpringMVC的相關配置都已經完成,并且配置正確!

作為我的關于S平ringMVC的首篇博客,本篇博客主要說名如何配置SpringMVC,并且可以使之正常的返回Bean實體,這里的bean實體一般返回到前端都是以Json字符串的形式返回的。

使用的開發工具為eclipse,這個也是比較大眾化的開發工具了,算的上是人人都會使用的了,只是熟練程度不一樣!

具體的配置如下:

web.xml:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:context="http://www.springframework.org/schema/context"
  xmlns:mvc="http://www.springframework.org/schema/mvc"
  xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd
  http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd
  http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd"
  id="WebApp_ID" version="3.1">
  <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:applicationContext.xml</param-value>
  </context-param>
  <listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>
  <display-name>ReturnJsonDemo</display-name>
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
  <servlet>
    <servlet-name>dispatcher</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>classpath:dispatcher-servlet.xml</param-value>
    </init-param>
  </servlet>
  <servlet-mapping>
    <servlet-name>dispatcher</servlet-name>
    <url-pattern>/</url-pattern>
  </servlet-mapping>
</web-app>

dispatcher-servlet.xml:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns="http://www.springframework.org/schema/beans"
  xmlns:context="http://www.springframework.org/schema/context"
  xmlns:mvc="http://www.springframework.org/schema/mvc"
  xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd
  http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
  http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd
  http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd">
  <mvc:default-servlet-handler />
  <context:component-scan base-package="com.zyq.springmvc.controller">
    <context:exclude-filter type="annotation"
      expression="org.springframework.stereotype.Service" />
  </context:component-scan>
  <context:annotation-config />
  <mvc:annotation-driven>
    <mvc:message-converters>
      <bean class="org.springframework.http.converter.StringHttpMessageConverter">
        <property name="supportedMediaTypes">
          <list>
            <value>text/plain;charset=UTF-8</value>
            <value>text/html;charset=UTF-8</value>
          </list>
        </property>
      </bean>
      <bean
        class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
        <property name="supportedMediaTypes">
          <list>
            <value>application/json; charset=UTF-8</value>
            <value>application/x-www-form-urlencoded; charset=UTF-8</value>
          </list>
        </property>
      </bean>
    </mvc:message-converters>
  </mvc:annotation-driven>
</beans>

還有一個applicationContext.xml,不過我的里面什么都沒有寫,我就不給出了!

新建一個index.jsp,這個作為主界面用來測試各個接口的返回值是否正常!這里也給出代碼:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
  pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Main Page</title>
</head>
<body>
  <h2>Welcome Main Page!!!</h2>
  <form action="/ReturnJsonDemo/first">
    <input type="submit" value="first" />
  </form>
  <form action="/ReturnJsonDemo/second">
    <input type="submit" value="second" />
  </form>
  <form action="/ReturnJsonDemo/third">
    <input type="submit" value="third" />
  </form>
  <form action="/ReturnJsonDemo/fourth">
    <input type="submit" value="fourth" />
  </form>
</body>
</html>

到這里基本上配置方面的都完成了,然后是申明一個Controller,具體的代碼也比較簡單,基本上都是固定的格式!

MainController.java

package com.zyq.springmvc.controller;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import com.zyq.springmvc.bean.CommonBean;
import com.zyq.springmvc.bean.SonBean;
@Controller
public class MainController {
  @RequestMapping("/first")
  @ResponseBody
  public CommonBean getFirst(){
    CommonBean bean = new CommonBean();
    bean.setResultCode("success");
    bean.setTimeStamp(new SimpleDateFormat("yyyy/MM/dd HH:mm:ss").format(System.currentTimeMillis()));
    bean.setData("this is first message");
    return bean;
  }
  @RequestMapping("/second")
  @ResponseBody
  public CommonBean getSecond(){
    CommonBean bean = new CommonBean();
    bean.setResultCode("success");
    bean.setTimeStamp(new SimpleDateFormat("yyyy/MM/dd HH:mm:ss").format(System.currentTimeMillis()));
    List<String> data = new ArrayList<>();
    data.add("JAVA");
    data.add("C");
    data.add("PYTHON");
    data.add("C++");
    bean.setData(data);
    return bean;
  }
  @RequestMapping("/third")
  @ResponseBody
  public CommonBean getThird(){
    CommonBean bean = new CommonBean();
    bean.setResultCode("success");
    bean.setTimeStamp(new SimpleDateFormat("yyyy/MM/dd HH:mm:ss").format(System.currentTimeMillis()));
    Map<String, String> data = new HashMap<>();
    data.put("first", "JAVA");
    data.put("second","PYTHON");
    data.put("third", "C++");
    data.put("fourth", "C");
    bean.setData(data);
    return bean;
  }
  @RequestMapping("/fourth")
  @ResponseBody
  public CommonBean getFourth(){
    CommonBean bean = new CommonBean();
    bean.setResultCode("success");
    bean.setTimeStamp(new SimpleDateFormat("yyyy/MM/dd HH:mm:ss").format(System.currentTimeMillis()));
    SonBean sonBean = new SonBean();
    sonBean.setAge(25);
    sonBean.setName("Hacker's Delight");
    sonBean.setGender("male");
    bean.setData(sonBean);
    return bean;
  }
}

代碼的運行效果如下:

使用SpringMVC返回json字符串的實例講解

好像不同瀏覽器對于接口的請求操作不一樣,在使用eclipse請求接口,會讓下載一個json文件,文件的內容就是一個json字符串。

在配置完整的工程需要用到springframework的jar包,jackson的相關jar包,我使用的tomcat8.5在運行的時候提示報錯,需要引入common-log的jar包。

在聲明一個返回json字符串的接口時,一定要使用@ResponseBody注解,這個注解會將接口的返回數據寫入response中的body區域,也就是重新傳回前端。

在我測試的時候遇到一個問題,在返回bean的時候,只能返回類包裹,不能返回類繼承或者接口繼承,舉個例子:

如果你返回一個ParentBean,其內部包含一個ChildBean,這樣是ok!

如果在接口定義時,返回的是一個父類,而實際返回的是它的子類,這時候匯報錯誤,提示無法將子類轉換成父類,就相當于你不能將String對象轉換成object對象,關于這方面應該是根據父類無法查找子類的屬性,導致無法正常將bean對象轉換成json字符串,所以在框架中不允許在接口中聲明bean而返回的是bean的子類(這些原因都只是個人猜測,具體的原因還需要分析框架中的代碼)!

好了,關于返回json字符串就說到這里了!附上demo的源碼,需要的jar包也在里面,需要的可以自己去下載!

源碼下載

以上這篇使用SpringMVC返回json字符串的實例講解就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

永寿县| 嫩江县| 沿河| 崇信县| 尉犁县| 南城县| 阿尔山市| 延边| 伊川县| 林芝县| 方山县| 抚顺县| 漳州市| 陆川县| 崇义县| 汕头市| 错那县| 临沧市| 益阳市| 阿拉善右旗| 禄丰县| 曲周县| 泽州县| 兴宁市| 项城市| 山阳县| 新建县| 丰台区| 绍兴县| 简阳市| 财经| 济源市| 昭觉县| 当涂县| 伊川县| 离岛区| 宝清县| 上栗县| 徐州市| 江门市| 陆良县|