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

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

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

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

Q&A

解決済

1回答

1145閲覧

PlayFramework2.6のCookieの記述を2.7のバージョンで書き直す

kaisyano-inu

総合スコア23

Play Framework 2

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

0グッド

0クリップ

投稿2020/07/12 14:39

前提・実現したいこと

PlayFramework2.6のCookieを2.7のバージョンで書き直す

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

2.6の構文でcookieの処理を記述したところ、重複が発生しており、非推奨のワーニングが発生
localhostで起動する一応動くことは確認

該当のソースコード

HomeController.java

package controllers; import play.mvc.*; import java.util.*; /** * 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(Optional<String> name) { String param = name.orElse(""); String message = "<p>nameはありません。</p>"; if(param != ""){ message = "<p>nameが送られました。</p>"; Http.Cookie newcookie = Http.Cookie.builder("name", param).build(); response().setCookie(newcookie); } Http.Cookie cookie = request().cookie("name"); if(cookie == null){ message += "<p>cookie: no-cookie.</p>"; }else{ message += "<p>cookie: " + cookie.value() + "</p>"; } return ok("<title>Hello!</title><h1>Hello!</h1>" + message).as("text/html"); } }

routes

# Routes # This file defines all application routes (Higher priority routes first) # ~~~~ # An example controller showing a sample home page GET / controllers.HomeController.index(name:java.util.Optional[String]) # Map static resources from the /public folder to the /assets URL path GET /assets/*file controllers.Assets.versioned(path="/public", file: Asset)

試したこと

下記のサイトで変更点を確認しましたが、いまいちどう書き直せばいいのかわかりませんでした。
https://www.playframework.com/documentation/2.7.x/JavaHttpContextMigration27

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

PlayFramework: version2.7.3

IDE
intellij IDEA

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

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

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

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

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

guest

回答1

0

ベストアンサー

request()やresponse()のところが、非推奨になっているので
それぞれ参考にするなら

request()については以下を
https://www.playframework.com/documentation/2.7.x/JavaHttpContextMigration27#Http.Context.current()-and-Http.Context.request()-deprecated

reponse()について

になるかと思います。

マイグレーションとしては以下のようなイメージになるのではないでしょうか。
申し訳ないですが、コンパイルまで試せていません。

java

1 public Result index(Optional<String> name, Http.Request request) { 2 String param = name.orElse(""); 3 String message = "<p>nameはありません。</p>"; 4 Http.Cookie newcookie; 5 if(param != ""){ 6 message = "<p>nameが送られました。</p>"; 7 newcookie = Http.Cookie.builder("name", param).build(); 8 } 9 Http.Cookie cookie = request.cookie("name"); 10 if(cookie == null){ 11 message += "<p>cookie: no-cookie.</p>"; 12 }else{ 13 message += "<p>cookie: " + cookie.value() + "</p>"; 14 } 15 return ok("<title>Hello!</title><h1>Hello!</h1>" + message).withCookies(newcookie).as("text/html"); 16 }

route

1GET / controllers.HomeController.index(name:java.util.Optional[String], request: Request)

投稿2020/07/21 10:33

taketoma

総合スコア374

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

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

kaisyano-inu

2020/07/24 07:30

routeファイルも修正必要だったんですね、、、 今回も回答ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問