Play Frameworkでクエリパラメータをコントローラで処理する方法を完全解説|Java初心者向け入門
生徒
「Play Frameworkで検索画面を作ろうとしているんですが、URLの後ろに付くクエリパラメータってどうやって受け取るんですか?」
先生
「Play Frameworkでは、Controllerでクエリパラメータを簡単に取得できます。Java初心者でも理解しやすい書き方ですよ。」
生徒
「Servletみたいにrequestから取り出す必要がありますか?」
先生
「基本的な考え方は似ていますが、Play Frameworkならもっとシンプルです。実際の例を見ながら確認していきましょう。」
1. クエリパラメータとは何か
クエリパラメータとは、URLの末尾に付与される追加情報のことです。 一般的に「?キー=値」の形式で表され、複数ある場合は「&」でつなげます。 Webアプリケーションでは、検索条件や並び替え、ページ番号の指定など、 さまざまな場面でクエリパラメータが使われています。
Play Frameworkでも、このクエリパラメータは非常に重要な存在です。 Javaで書かれたControllerクラスからクエリパラメータを受け取り、 その内容に応じて処理を切り替えることで、動的なWebアプリケーションを実現できます。
初心者の方は、まず「URLに含まれる情報をControllerで受け取れる」という点を しっかり理解することが大切です。
2. Play Frameworkでクエリパラメータを受け取る基本
Play Frameworkでは、Controllerのアクションメソッド内で リクエストオブジェクトを使ってクエリパラメータを取得します。 Servletのように複雑な処理を書く必要はなく、 必要なときだけ取り出せる点が特徴です。
まずは、最も基本的なクエリパラメータの取得方法を見てみましょう。
package controllers;
import play.mvc.Controller;
import play.mvc.Result;
import play.mvc.Http;
public class SearchController extends Controller {
public Result search(Http.Request request) {
String keyword = request.getQueryString("keyword");
return ok("検索キーワード:" + keyword);
}
}
この例では、keywordという名前のクエリパラメータを取得しています。 URLに「?keyword=java」のような形でアクセスすると、 Controllerでその値を受け取ってレスポンスに表示できます。
Play FrameworkのControllerでは、 必要な情報だけをシンプルに扱えるため、 Java初心者でもコードを読みやすいのが特徴です。
3. クエリパラメータが存在しない場合の考え方
実際のWebアプリケーションでは、 クエリパラメータが必ず送られてくるとは限りません。 そのため、値が存在しない場合を考慮した処理が重要になります。
Play Frameworkでは、クエリパラメータが存在しない場合、 getQueryStringの戻り値はnullになります。 そのため、条件分岐を使って安全に処理することができます。
public Result search(Http.Request request) {
String keyword = request.getQueryString("keyword");
if (keyword == null || keyword.isEmpty()) {
return ok("検索キーワードが指定されていません");
}
return ok("検索キーワード:" + keyword);
}
このように書いておくことで、 想定外のアクセスがあってもアプリケーションが壊れにくくなります。 初心者のうちは、必ずnullチェックを意識する習慣を付けましょう。
4. 数値のクエリパラメータを扱う方法
クエリパラメータには、文字列だけでなく数値が使われることも多くあります。 例えば、ページ番号や件数指定などが代表的な例です。 Play Frameworkでは、取得した文字列を数値に変換して処理します。
public Result page(Http.Request request) {
String pageParam = request.getQueryString("page");
int page = 1;
if (pageParam != null) {
page = Integer.parseInt(pageParam);
}
return ok("現在のページ:" + page);
}
この例では、pageというクエリパラメータを数値として扱っています。 初期値を用意しておくことで、 パラメータが指定されていない場合でも安定した動作が可能です。
数値変換はエラーが起きやすい部分でもあるため、 まずは基本的な形を理解することを優先しましょう。
5. クエリパラメータ処理で意識したいポイント
Play Frameworkでクエリパラメータを扱うときは、 Controllerの役割を意識することが大切です。 Controllerはリクエストとレスポンスをつなぐ場所であり、 複雑な処理を詰め込みすぎない方が保守しやすくなります。
クエリパラメータの取得はシンプルですが、 nullチェックや初期値の設定を忘れると、 思わぬエラーにつながることがあります。 初心者のうちは、少し丁寧すぎるくらいがちょうどよいです。
Play Frameworkのコントローラ入門として、 クエリパラメータを正しく扱えるようになると、 検索機能や一覧表示など、実用的なWebアプリケーションに一歩近づきます。 基本を繰り返し確認しながら、理解を深めていきましょう。