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

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

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

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

Q&A

解決済

1回答

1848閲覧

Playframeworkでのviews

Nitta

総合スコア96

Play Framework 2

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

0グッド

1クリップ

投稿2019/02/27 00:10

編集2019/03/01 06:12

お世話になってます。
今、ちょっとしたバァリデーション付きフォームを
作成しているのですが、viewsフォルダの中のscala.htmlが
全て参照されてなく反映していません(コンパールエラーがでる)。

エラーメッセージ:
イメージ説明

●FormController.java

package controllers; import com.google.inject.Inject; import views.form.UserForm; import play.data.Form; import play.data.FormFactory; import play.mvc.Controller; import play.mvc.Result; import views.html.*; public class FormController extends Controller { private Form<UserForm> form; @Inject public FormController(FormFactory formFactory) { this.form = formFactory.form(UserForm.class); } public Result showForm() { ↓↓↓ここでエラーメッセージ return ok(form.render(form)); } public Result submit() { Form<UserForm> userForm = form.bindFromRequest(); if(userForm.hasErrors()) { return badrequest(form.render(userForm)); } UserForm user =userForm.get(); return result.render(user); } }

controllerのファイルにはimport views.html.*;で
インポートしているのですが、mainとindexのみです。
何が悪いのでしょうか?
御分りの方ご教示下さい。

因みに今回は上記2ファイル以外にform.scala.html(反映されてないもの)
を入れています。

・追記(20190301:15:00)
イメージ説明

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

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

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

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

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

taketoma

2019/02/27 03:17

エラーメッセージには、他のソースの何行目とかの情報もあると思います。 これだけで原因がわかるわけないです。
Nitta

2019/02/27 05:11

返信ありがとうございます。 内容調整しました。どんなでしょうか?
taketoma

2019/03/01 06:42 編集

そうなるとviews.htmlのネームスペース以下にないとしか言いようがないです。 ↓こんなフォルダ構成なんですかね? ○フォルダ △ファイル ○app - ○controllers - △FormController.java    - ○views    - △form.scala.html             - △main.scala.html             - △index.scala.html             - ○form        - △UserFrom.java form.scala.htmlをform1.scala.htmlとかに変えてみても一緒ですかね? ちなみに return result.render(user); でもエラーが出そうですが、、、
guest

回答1

0

ベストアンサー

return ok(form.render(form));

これだと、formがForm<UserForm>のインスタンスなのか、views.html.formのScalaテンプレートなのか
プログラムが判断できないと思います。

return ok(views.html.form.render(this.form));

と明示してはどうでしょう。

投稿2019/02/27 05:42

taketoma

総合スコア374

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

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

Nitta

2019/03/01 02:05 編集

返信ありがとうございます。 実はどうもまだ上手く入りません! 助けてください。
taketoma

2019/03/01 03:05

>実はどうもまだ上手く入りません! 変えても同じエラーなのでしょうか? 具体的に試した結果を教えてもらわないとこちらも回答のしようがないです。
Nitta

2019/03/01 04:08

すいません。 上記と同じ結果です。 import views.html.*を入れれば viewsフォルダ内のものが読み込めるのでは ないのでしょうか?
taketoma

2019/03/01 04:52

ok(views.html.form.render(this.form)); にした際のコンソールも見せてほしいです
Nitta

2019/03/01 06:13

お世話になってます。 上記の追記(20190301:15:00)を参照ください。 同じです(泣)
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問