2022年2月12日 星期六

Spring Boot web 專案 Controller RequestBody ResponseBody annotation



@RequestBody annotation 將 HttpRequest Body 映射到domain object,,HttpRequest 主體自動反序列化到 Java 對像上。

@ResponseBody annotation 告訴控制器返回的對象自動序列化為 JSON 並傳回 HttpResponse 對象





一、@RequestBody 及 @ResponseBody 為JSON 資料請求及回應

@RequestBody 及 @ResponseBody 不指定MediaType 預設為 APPLICATION_JSON_VALUE
APPLICATION_JSON_VALUE = application/json
(spring-web-xxx-jar org.springframework.http.MediaType)
程式:
    @RequestMapping(value = "/test1",
            method = RequestMethod.POST)//produces= MediaType.APPLICATION_JSON_VALUE
    public @ResponseBody
    Book bodyTest1(@RequestBody Book book) {
        return book;
    }
圖1 





圖2 Book為 domain object,會將傳入參數映射到Book.java中。



圖3 測試 傳送資料為JSON格式,回應為JSON格式
測試URI:http://localhost:8080/books/test1
測試資料:
{
    "id": 30,
    "name": "java",
    "price": "100"
}


二、@RequestBody 及 @ResponseBody 為 XML 資料請求及回應

@RequestBody 及 @ResponseBody 指定MediaType 為 APPLICATION_XML_VALUE
程式:
@RequestMapping(value = "/test2",
            method = RequestMethod.POST,
            produces=MediaType.APPLICATION_XML_VALUE)
    public @ResponseBody
    Book bodyTest2(@RequestBody Book book) {
        return book;
    }

圖4 


圖5 pom.xml 加入dependency com.fasterxml.jackson.dataformat
<dependency>
            <groupId>com.fasterxml.jackson.dataformat</groupId>
            <artifactId>jackson-dataformat-xml</artifactId>
    </dependency>

參考官方文件

圖6 測試  傳送資料為XML格式,回應為XML格式
<?xml version="1.0" encoding="UTF-8" ?>
<root>
  <id>30</id>
  <name>java</name>
  <price>100</price>
</root>


Convert JSON To XML





















用LINE傳送分享








其它文章

沒有留言:

張貼留言

標籤

Oracle (150) Oracle DB (144) Oracle_DB (143) Oracle SQL (135) JAVA (84) css-基本類 (65) MySQL (59) CSS Selector (58) jQuery (49) JavaScript-基本類 (39) Spring Boot (38) JavaScript (37) JavaScript HTML DOM (37) JavaScript-HTML_DOM (36) CSS3 (30) JAVA-基本類 (28) jQuery UI (27) Apache (23) Oracle GROUP BY (20) datepicker (20) Android (18) Oracle Date (17) c (17) JAVA-lang套件 (16) Linux (16) Oracle Sub Query (16) Spring-基本類 (16) jQuery-基本類 (16) MySQL-進階系列教學 (15) Android基本類 (14) Grails (14) Oracle join (14) SQLite (13) Spring (13) WIN7-基本類 (13) grails-基本類 (13) linux cent os (13) CKEditor (12) JAVA-流程控制類 (12) JAVA_Spring (12) PHP (11) Spring MVC (11) MySQL-基本系列教學 (10) Notepad (10) Notepad++ (10) SQLite for java (10) Windows (10) c/c++ (10) eclipse (9) jQuery-Selector (9) sqldeveloper (9) DB_Toad (8) JAVA_IDE_Eclipse (8) JavaScript-String類 (8) MySQL DB Toad (8) MySQL-DATE相關 (8) MySQL-函式相關 (8) Spring Bean (8) Android Studio (7) HTML5 (7) Hibernate (7) JAVA-OCWCD (7) JavaScript-陣列類 (7) Docker (6) JAVA-程式分享 (6) JAVA.util套件 (6) JavaScript-數學類 (6) MinGw (6) MySQL-其它類 (6) Servlet (6) centos (6) Apache_Tomcat (5) Apache套件_POI (5) CSS (5) JavaScript-Date物件 (5) JavaScript-其它類 (5) PostgreSQL (5) httpd (5) log4j (5) 基本資訊 (5) 開發工具 (5) CSS Properties (4) Dev-C++ (4) IntelliJ IDEA (4) Oracle DDL (4) Sublime (4) TortoiseSVN (4) apache_Maven (4) Android NDK (3) Eclipse IDE for C/C++ (3) Hibernate-基本類 (3) JAVA-問題 (3) JAVA-綀習分享 (3) JVM (3) Linux 指令 (3) Proxy Server (3) Spring Mobile (3) Spring web (3) Squid (3) VirtualBox (3) maven (3) zk (3) 生活其它 (3) Bootstrap (2) Filter (2) JAVA_IO (2) JAVA_其它_itext套件 (2) JBoss-問題 (2) JSP (2) Jboss (2) Listener (2) MySQL-語法快速查詢 (2) Spring AOP (2) Spring Batch (2) Spring Boot Actuator (2) Spring i18n (2) Subversive (2) Tomcat 8 (2) UML (2) WebJars (2) WinMerge (2) c++ (2) c語言綀習題 (2) jQuery Mobile (2) jQuery-事件處理 (2) jQuery-套件類 (2) putty (2) svn (2) weblogic (2) Apache_JMeter (1) Apache套件_BeanUtils (1) Apache套件_StringUtils (1) Base64 (1) Google API (1) HTML5-基本類 (1) Heap (1) JAVA 7 (1) JAVA SE 、JAVA EE、JAVA ME (1) JAVA 日期 (1) JAVA-OCJP (1) JAVA-WEB (1) JAVA_IDE (1) JAVA其它 (1) JBoss Server (1) JDK (1) JMX (1) JRE (1) Java RMI (1) Java String (1) Joda Time (1) Linux_其它 (1) MySQL教學 (1) Oracle_VirtualBox (1) SQL Server (1) SWT (1) Session (1) Stack (1) Struts 2 (1) Tool (1) ZK Studio (1) csv (1) grails-其它類 (1) jQuery-進階 (1) java mail (1) java web (1) java8 (1) jsoup (1) mockmvc (1) modules (1) tomcat (1) win10 (1) 其它類 (1) 圖片工具 (1) 模擬器 (1) 讀書分享 (1) 開發資訊 (1)

精選文章

初學 Java 的 HelloWorld 程式

撰寫一個JAVA程式 public class HelloWorld{ public static void main(String[ ] args){ System.out.println("我第一支Java程式!!"); } } ...