カテゴリ: 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
Play Framework
Play Frameworkでフォームデータをコントローラで扱う方法を完全解説|Java初心者向けコントローラ入門
New2
Jakarta EE
Jakarta EE JSPにおけるJSTLとスクリプトレットの違いと使い分けを初心者向けに徹底解説
New3
Play Framework
Play Frameworkでクエリパラメータをコントローラで処理する方法を完全解説|Java初心者向け入門
New4
Play Framework
Play FrameworkとSpring Bootの違いを徹底比較!初心者でもわかるJavaフレームワーク入門
人気記事
No.1
Java&Spring記事人気No1
Jakarta EE
Jakarta EEのリリースサイクルとバージョンの進化をやさしく解説!
No.2
Java&Spring記事人気No2
Jakarta EE
Jakarta サーブレットのHttpServletRequestを徹底解説!初心者でもわかる基本操作と使い方
No.3
Java&Spring記事人気No3
Jakarta EE
Jakarta EEとSpringの比較|どちらを選ぶべきか?初心者向けに徹底解説!
No.4
Java&Spring記事人気No4
Jakarta EE
Jakarta EEとJava EEアプリの互換性を完全解説!移行で困らないための基礎知識
No.5
Java&Spring記事人気No5
Jakarta EE
Jakarta EE JSPにおけるJSTL国際化タグ(fmt:message)の使い方を初心者向けに完全解説
No.6
Java&Spring記事人気No6
Jakarta EE
Jakarta EE JSPでJSTL SQLタグを使った簡易データベースアクセスをやさしく解説
No.7
Java&Spring記事人気No7
Jakarta EE
Jakarta EE JSPでJSTLを使ったJSONやREST APIレスポンス処理を初心者向けにやさしく解説
No.8
Java&Spring記事人気No8
Play Framework
Play Frameworkでリクエストデータの受け取り方を完全解説|Java初心者向けコントローラ入門