カテゴリ: Play Framework 更新日: 2026/01/10

Play Frameworkでフォームデータをコントローラで扱う方法を完全解説|Java初心者向けコントローラ入門

フォームデータをコントローラで扱う方法
フォームデータをコントローラで扱う方法

先生と生徒の会話形式で理解しよう

生徒

「Play Frameworkでフォームを作ったんですが、送信されたデータをControllerでどうやって受け取ればいいのか分かりません…」

先生

「Play Frameworkでは、Controllerでフォームデータをシンプルに受け取れます。HTTPリクエストの仕組みが分かると理解しやすいですよ。」

生徒

「Servletみたいにrequestから全部取り出す感じですか?」

先生

「似ていますが、もっと分かりやすく書けます。まずは基本的なフォームデータの流れから見ていきましょう。」

1. フォームデータとは何か

1. フォームデータとは何か
1. フォームデータとは何か

フォームデータとは、Web画面にある入力フォームから送信される情報のことです。 ユーザー名、メールアドレス、パスワード、コメントなど、 Webアプリケーションではフォーム入力が中心的な役割を果たします。

Play Frameworkでは、HTMLフォームから送信されたデータをHTTPリクエストとして受け取り、 Controllerのアクションメソッド内で処理します。 Java初心者の方は、まず「フォーム送信=リクエストが送られる」という流れを イメージできるようになることが重要です。

Play Frameworkのコントローラ入門では、 難しい仕組みよりも「どう書けば受け取れるのか」に注目して学習すると理解が進みます。

2. HTMLフォームから送信される基本的なデータ

2. HTMLフォームから送信される基本的なデータ
2. HTMLフォームから送信される基本的なデータ

フォームデータは、主にPOSTメソッドを使って送信されます。 入力欄のname属性が、Controllerでデータを受け取る際のキーになります。 まずは、どのようなHTMLフォームが使われるのかを確認してみましょう。


<form action="/submit" method="post">
    <div>
        <label>名前</label>
        <input type="text" name="username">
    </div>
    <div>
        <label>年齢</label>
        <input type="number" name="age">
    </div>
    <button type="submit">送信</button>
</form>

このフォームでは、usernameとageという二つのデータが送信されます。 Play FrameworkのControllerでは、 これらの名前を使ってフォームデータを取得します。

初心者の方は、HTMLのname属性とController側の処理が 直接つながっていることを意識すると理解しやすくなります。

3. Controllerでフォームデータを受け取る基本方法

3. Controllerでフォームデータを受け取る基本方法
3. Controllerでフォームデータを受け取る基本方法

Play Frameworkでは、Http.Requestオブジェクトを使って フォームデータを取得します。 request.body().asFormUrlEncoded()を使うことで、 フォームから送信された値をまとめて扱えます。


package controllers;

import play.mvc.Controller;
import play.mvc.Result;
import play.mvc.Http;

import java.util.Map;

public class FormController extends Controller {

    public Result submit(Http.Request request) {
        Map<String, String[]> formData = request.body().asFormUrlEncoded();
        String username = formData.get("username")[0];
        String age = formData.get("age")[0];
        return ok("名前:" + username + " 年齢:" + age);
    }
}

このコードでは、フォームデータをMapとして受け取っています。 keyがフォームのname属性、valueが入力された値です。 配列になっているのは、同じ名前の項目が複数送信される可能性があるためです。

最初は少し難しく感じるかもしれませんが、 実際に動かしてみると仕組みが分かりやすくなります。

4. フォームデータが存在しない場合の注意点

4. フォームデータが存在しない場合の注意点
4. フォームデータが存在しない場合の注意点

フォームデータは、必ずしもすべての項目が入力されるとは限りません。 未入力のまま送信された場合や、 想定していないリクエストが送られることもあります。

そのため、Controllerではデータが存在するかどうかを 意識して処理を書くことが重要です。 初心者のうちは、エラーを防ぐ意識を持つだけでも十分です。


public Result submit(Http.Request request) {
    Map<String, String[]> formData = request.body().asFormUrlEncoded();
    if (formData == null) {
        return ok("フォームデータが送信されていません");
    }
    String username = formData.containsKey("username") ? formData.get("username")[0] : "";
    return ok("名前:" + username);
}

このようにチェックを入れておくことで、 想定外のアクセスがあってもアプリケーションが壊れにくくなります。 Play FrameworkのControllerでは、 安全にリクエストを扱う意識が大切です。

5. フォームデータを扱うときの考え方

5. フォームデータを扱うときの考え方
5. フォームデータを扱うときの考え方

フォームデータの処理は、Webアプリケーション開発の中でも 非常に重要なポイントです。 Play Frameworkでは、Controllerがその入口となります。

初心者の方は、まず「フォームから送信された値を受け取って表示する」 というシンプルな流れを繰り返し練習すると理解が深まります。 いきなり複雑な処理を作ろうとせず、 一つずつ動作を確認することが大切です。

Play Frameworkのコントローラ入門として、 フォームデータを正しく扱えるようになると、 会員登録や問い合わせフォームなど、 実用的なWebアプリケーション開発に大きく近づきます。 焦らず、基本をしっかり身に付けていきましょう。

カテゴリの一覧へ
新着記事
New1
Jakarta EE
Jakarta EEとクラウドネイティブ開発の相性とは?初心者向けにわかりやすく解説
New2
Jakarta EE
JakartaEE JSPのリクエスト属性とスコープの基本を徹底解説!初心者向け入門ガイド
New3
Play Framework
Play Frameworkのビューテストを徹底解説!Twirlテンプレートの品質を高める方法
New4
Jakarta EE
JakartaEE フィルタで認証と認可を実装する方法を初心者向けに解説!サーブレットのセキュリティ入門
人気記事
No.1
Java&Spring記事人気No1
Jakarta EE
Jakarta EEとSpringの比較|どちらを選ぶべきか?初心者向けに徹底解説!
No.2
Java&Spring記事人気No2
Play Framework
Play Frameworkのビューを共通化!テンプレート間のインクルード方法を徹底解説
No.3
Java&Spring記事人気No3
Play Framework
Play Frameworkプロジェクト作成直後にやるべき初期設定ガイド!初心者でも安心
No.4
Java&Spring記事人気No4
Jakarta EE
Jakarta サーブレットのHttpServletRequestを徹底解説!初心者でもわかる基本操作と使い方
No.5
Java&Spring記事人気No5
Play Framework
Play Frameworkで多言語対応(i18n)を徹底解説!Twirlテンプレートでの使い方
No.6
Java&Spring記事人気No6
Play Framework
Play FrameworkでCSSやJavaScriptを読み込む方法を徹底解説!静的リソースの組み込みガイド
No.7
Java&Spring記事人気No7
Jakarta EE
Jakarta EEとJava EEアプリの互換性を完全解説!移行で困らないための基礎知識
No.8
Java&Spring記事人気No8
Jakarta EE
Jakarta EEの標準仕様とAPI一覧を完全解説!初心者でもわかるエンタープライズJavaの基本