🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

Thymeleaf

Thymeleaf(タイムリーフ)とは、Java用のテンプレートエンジンで、特定のフレームワークに依存せず使用することが可能です。

Spring Boot

Spring Bootは、Javaのフレームワークの一つ。Springプロジェクトが提供する様々なフレームワークを統合した、アプリケーションを高速で開発するために設計されたフレームワークです。

Q&A

1回答

11545閲覧

SpringBoot + JPA + Thymeleaf 画面表示時にエラー

a.a

総合スコア12

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

Thymeleaf

Thymeleaf(タイムリーフ)とは、Java用のテンプレートエンジンで、特定のフレームワークに依存せず使用することが可能です。

Spring Boot

Spring Bootは、Javaのフレームワークの一つ。Springプロジェクトが提供する様々なフレームワークを統合した、アプリケーションを高速で開発するために設計されたフレームワークです。

0グッド

0クリップ

投稿2019/10/12 04:35

SpringBoot + JPA + Thymeleafで簡単なCRUDを作る②~画面と機能作成まで~
参考にしたページ

参考のページを基に、簡単なリマインダを作成したいと思っています。
各ソースの実行は問題なく通り、HTMLも用意しているのですが

  • 一覧画面
  • 新規作成画面
  • 編集画面
  • 参照画面

の4つのうち、

  • 編集画面
  • 参照画面

の二つが画面表示されず、詰まっています。
よろしくお願い致します。

エラーの表示内容は

-編集画面が

Whitelabel Error Page

This application has no explicit mapping for /error, so you are seeing this as a fallback.

Sat Oct 12 13:28:25 GMT+09:00 2019

There was an unexpected error (type=Internal Server Error, status=500).
Exception evaluating SpringEL expression: "id" (template: "reminder/edit" - line 13, col 13)

  • 参照画面が

Whitelabel Error Page

This application has no explicit mapping for /error, so you are seeing this as a fallback.

Sat Oct 12 13:29:02 GMT+09:00 2019

There was an unexpected error (type=Internal Server Error, status=500).
Exception evaluating SpringEL expression: "id" (template: "reminder/show" - line 16, col 14)

となっています。

edit.html

<!DOCTYPE html> <html xmlns:th="http://www.thymeleaf.org"> <head> <meta charset="utf-8" /> <title>Editing Player - baseball</title> <link rel="stylesheet" href="/css/bootstrap.css" /> <script src="/js/jquery.js"></script> <script src="/js/bootstrap.js"></script> </head> <body> <div class="container"> <h1>Editing Player</h1> <form th:action="@{/reminderViewModelList/{id}(id=*{id})}" th:method="put" th:object="${ReminderViewModel}"> <div class="form-group"> <label class="control-label">ID</label> <!-- ① --> <input class="form-control" type="text" th:field="*{id}" /> </div> <div class="form-group"> <label class="control-label">Date</label> <input class="form-control" type="number" th:field="*{date}" /> </div> <div class="form-group"> <label class="control-label">Task</label> <input class="form-control" type="text" th:field="*{task}" /> </div> <button class="btn btn-default" type="submit">更新</button> </form> <div class="pull-right"> <a class="btn btn-link" href="/reminder">一覧画面へ</a> </div> </div> </body> </html>

show.html

<html xmlns:th="http://www.thymeleaf.org"> <head> <meta charset="utf-8" /> <title>Show Reminder</title> <link rel="stylesheet" href="/css/bootstrap.css" /> <script src="/js/jquery.js"></script> <script src="/js/bootstrap.js"></script> </head> <body> <div class="container"> <h1>Show Reminder</h1> <div th:object="${ReminderViewModel}"> <div> <label>ID</label> <p th:text="${id}"></p> </div> <div> <label>Date</label> <p th:text="${date}"></p> </div> <div> <label>Task</label> <p th:text="${task}"></p> </div> </div> <div> <a class="btn btn-default" th:href="@{/reminder/{id}/edit(id=*{id})}">編集</a> </div> <div class="pull-right"> <a class="btn btn-link" href="/reminder ">一覧画面へ</a> </div> </div> </body> </html>

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

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

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

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

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

guest

回答1

0

はじめまして。

コントローラークラスってどのように設定してますか?

URLをトリガーにしてマッピングしていると思いますが、そのトリガーの設定が誤っている可能性があります。

私も質問者様が参考にされているサイトを見てプロダクトを作っておりました。
そのサイトのコントローラークラスは以下のような始まりです。

@Controller
@RequestMapping("/players") // ①
public class PlayerController {

この①の部分はコントローラークラス内でマッピングする際、すべてのトリガーの先頭にデフォルトで設定される値を設定しています。

つまり、
コントローラークラス内でマッピングする際に
@RequestMapping(“/edit“)
となっていたとしても、view側のトリガーは
Players/edit
としなければなりません。つまり、見かけ上の差異が出ます。

その点が確認できれば解消するトラブルかと推測します。

投稿2019/12/29 17:59

KirkeKirke

総合スコア7

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問