SpringMVC のビューがモデル データをレンダリングする方法

SpringMVC のビューがモデル データをレンダリングする方法ここに画像の説明を挿入

SpringMVC は Spring フレームワークに基づく Web フレームワークで、HTTP リクエストとレスポンスを処理する便利な方法を提供します。SpringMVC では、ビューはモデル データをレンダリングするために使用されるコンポーネントであり、モデル データを HTML、JSON、XML などの形式の応答に変換する役割を果たします。この記事では、SpringMVC のビューでモデル データをレンダリングする方法について説明します。

HTMLビューをレンダリングする

SpringMVC では、Thymeleaf テンプレート エンジンを使用して HTML ビューを簡単にレンダリングできます。Thymeleaf は、開発者が変数、式、条件文などの動的コンテンツを HTML ファイルに埋め込むことができるサーバー側 Java テンプレート エンジンです。Thymeleafの構文はシンプルで分かりやすく、開発効率も高いためSpringMVCで広く使われています。

次に、Thymeleaf を使用して HTML ビューをレンダリングする例を示します。

  1. Thymeleaf 依存関係を追加

次の依存関係を pom.xml ファイルに追加します。

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
  1. HTML テンプレートを作成する

次の内容を含むindex.html ファイルを src/main/resources/templates ディレクトリに作成します。

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
  <meta charset="UTF-8">
  <title>Index Page</title>
</head>
<body>
  <h1 th:text="${title}"></h1>
  <ul>
    <li th:each="item : ${items}" th:text="${item}"></li>
  </ul>
</body>
</html>

上記の HTML テンプレートでは、Thymeleaf 構文を使用してモデル データを HTML ページにレンダリングします。${title}と は${items}、それぞれモデル内の title 属性と items 属性を表します。

  1. コントローラーを書く

コントローラーにモデル データを設定し、HTML ビューを返します。

@Controller
public class HomeController {
    
    
  
  @GetMapping("/")
  public String home(Model model) {
    
    
    model.addAttribute("title", "Welcome to my website");
    model.addAttribute("items", Arrays.asList("Item 1", "Item 2", "Item 3"));
    return "index";
  }
  
}

上記のコントローラーでは、model.addAttributeメソッドを介してタイトルと項目のプロパティをモデルに追加し、ビュー名を「index」に設定します。SpringMVC は、「index」という名前の Thymeleaf テンプレート ファイルを自動的に検索し、モデル データを HTML ページにレンダリングします。

JSON ビューをレンダリングする

SpringMVC では、Jackson ライブラリを使用して JSON ビューを簡単にレンダリングできます。Jackson は、JSON データをシリアル化および逆シリアル化するための Java ライブラリであり、Java オブジェクトを JSON 形式の文字列にシリアル化し、それを応答としてクライアントに返すことができます。

Jackson を使用して JSON ビューをレンダリングする例を次に示します。

  1. ジャクソン依存関係を追加

次の依存関係を pom.xml ファイルに追加します。

<dependency>
  <groupId>com.fasterxml.jackson.core</groupId>
  <artifactId>jackson-databind</artifactId>
</dependency>
  1. コントローラーを書く

コントローラーにモデルデータを設定し、JSON ビューを返します。

@RestController
public class UserController {
    
    
  
  @GetMapping("/user")
  public User getUser() {
    
    
    User user = new User();
    user.setName("John");
    user.setAge(30);
    return user;
  }
  
}

上記のコントローラーでは User オブジェクトを返します。SpringMVC はそれを JSON 形式の文字列に自動的にシリアル化してクライアントに返します。

XMLビューをレンダリングする

SpringMVC では、JAXB ライブラリを使用して XML ビューを簡単にレンダリングできます。JAXB (Java Architecture for XML Binding の略) は、Java オブジェクトを XML 形式にシリアル化するためのライブラリです。SpringMVC では、JAXB ライブラリを使用して、モデル データを XML 形式の応答としてレンダリングできます。

JAXB を使用して XML ビューをレンダリングする例を次に示します。

  1. JAXB 依存関係を追加する

次の依存関係を pom.xml ファイルに追加します。

<dependency>
  <groupId>javax.xml.bind</groupId>
  <artifactId>jaxb-api</artifactId>
  <version>2.3.0</version>
</dependency>
  1. コントローラーを書く

コントローラーにモデル データを設定し、XML ビューを返します。

@RestController
public class UserController {
    
    
  
  @GetMapping("/user")
  public User getUser() {
    
    
    User user = new User();
    user.setName("John");
    user.setAge(30);
    return user;
  }
  
  @GetMapping(value = "/user", produces = MediaType.APPLICATION_XML_VALUE)
  public User getUserAsXml() {
    
    
    User user = new User();
    user.setName("John");
    user.setAge(30);
    return user;
  }
  
}

上記のコントローラーでは、getUser メソッドで User オブジェクトを返します。SpringMVC はそれを JSON 形式の文字列にシリアル化してクライアントに返します。getUserAsXml メソッドでは、Produces 属性を使用して返されるデータ型を XML として指定し、JAXB ライブラリを使用して User オブジェクトを XML 形式の文字列にシリアル化し、クライアントに返します。

要約する

この記事では、SpringMVC で Thymeleaf、Jackson、JAXB を使用して HTML、JSON、および XML ビューをレンダリングする方法を紹介しました。Thymeleaf を使用すると HTML ビューを簡単にレンダリングでき、Jackson を使用すると Java オブジェクトを JSON 形式の文字列にシリアル化してクライアントに返すことができ、JAXB を使用して Java オブジェクトを XML 形式の文字列にシリアル化し、クライアントに返すことができます。特定のビジネス ニーズに応じて、モデル データをレンダリングする適切な方法を選択できます。

おすすめ

転載: blog.csdn.net/2302_77835532/article/details/131632326