質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Play Framework 2

Play Framework 2はPlayのメジャーバージョンです。現代の web アプリケーション開発に必要なコンポーネント及び API を統合した生産性の高い Java と Scala の web アプリケーションフレームワークです。

Q&A

解決済

1回答

1014閲覧

PlayFrameworkのControllerクラスのresponse()の所在を知りたい

kaisyano-inu

総合スコア23

Play Framework 2

Play Framework 2はPlayのメジャーバージョンです。現代の web アプリケーション開発に必要なコンポーネント及び API を統合した生産性の高い Java と Scala の web アプリケーションフレームワークです。

0グッド

0クリップ

投稿2020/07/06 16:25

前提・実現したいこと

・PlayFrameworkのHomeControllerでresponse()のコンパイルを通したい。
response().setHeader(ACCEPT_CHARSET, "utf-8");の実現

発生している問題・エラーメッセージ

PlayFrameworkのHomeControllerで
response().setHeader(ACCEPT_CHARSET, "utf-8");
がコンパイルエラー
Cannot resolve method 'response' in 'HomeController'

該当のソースコード

HomeController.java

package controllers; import play.mvc.*; import akka.util.*; import java.net.http.HttpRequest; import java.util.*; import play.http.*; /** * This controller contains an action to handle HTTP requests * to the application's home page. */ public class HomeController extends Controller { /** * An action that renders an HTML page with a welcome message. * The configuration in the <code>routes</code> file means that * this method will be called when the application receives a * <code>GET</code> request with a path of <code>/</code>. */ public Result index() { response().setHeader(ACCEPT_CHARSET, "utf-8"); //ここがコンパイルエラー return ok("<title>Hello!</title><h1>Hello!</h1><p>サンプルのメッセージ</p>") .as("text/html"); } }

response()があるはずだと思う親クラス(play\mvc\Controller.java)

/* * Copyright (C) Lightbend Inc. <https://www.lightbend.com> */ package play.mvc; import static play.mvc.Http.*; /** Superclass for a Java-based controller. */ public abstract class Controller extends Results implements Status, HeaderNames { /** Generates a 501 NOT_IMPLEMENTED simple result. */ public static Result TODO(Request request) { return status(NOT_IMPLEMENTED, views.html.defaultpages.todo.render(request.asScala())); } }

試したこと

sbt1.3.12でPlayFrameworkのjavaプロジェクトを作成

補足情報(FW/ツールのバージョンなど)

build.sbt

name := """play-java-myapp""" organization := "com.wkb.play" version := "1.0-SNAPSHOT" lazy val root = (project in file(".")).enablePlugins(PlayJava) scalaVersion := "2.13.2" libraryDependencies += guice

plugins.sbt

// The Play plugin addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.8.2") // Defines scaffolding (found under .g8 folder) // http://www.foundweekends.org/giter8/scaffolding.html // sbt "g8Scaffold form" addSbtPlugin("org.foundweekends.giter8" % "sbt-giter8-scaffold" % "0.11.0")

どなたかご助言いただけると助かります

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

おそらくPlay2.8を利用していると思われるのですが、
Play2.7からContextの部分に変更があるようです。
2.7のマイグレーションに関するドキュメント

上のURLに書いているように

java

1return ok("<title>Hello!</title><h1>Hello!</h1><p>サンプルのメッセージ</p>") 2 .as("text/html").withHeader("ACCEPT_CHARSET", "utf-8");

のようにしてヘッダーを指定する必要があると思います。

投稿2020/07/08 03:47

taketoma

総合スコア374

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kaisyano-inu

2020/07/08 23:55 編集

なるほど。。。ドキュメントを深く読み込んでいませんでした。。。 ありがとうございました。助かりました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問