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

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

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

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

Thymeleaf

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

Spring Boot

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

Q&A

0回答

427閲覧

受け取った入力からThymleafのif文を使って結果出力する方法

yyomu

総合スコア7

Java

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

Thymeleaf

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

Spring Boot

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

0グッド

0クリップ

投稿2023/01/22 11:15

編集2023/01/26 14:26

Spring Bootを使って、入力フォーム(info-form.html)で車の速度を受け取り、その速度によって出力結果が変わる出力フォーム(judge.html)を作成したいです。
しかし、入力を受け取ってから実際の出力ページに移動すると500とエラーが発生しました。

実現したいこと

・入力フォームで車の速度を受け取る。(問題なし)
・出力フォームで、受け取った速度に応じて出力結果を変える。(出力フォームまでいかず)

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

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

Thu Jan 26 23:20:56 JST 2023
There was an unexpected error (type=Internal Server Error, status=500).
Unresolved compilation problem: The method setSpeed(int) in the type Car is not applicable for the arguments (String)
java.lang.Error: Unresolved compilation problem:
The method setSpeed(int) in the type Car is not applicable for the arguments (String)

該当のソースコード

html

1~info-form.html~ 2<!DOCTYPE html> 3<html lang="ja" xmlns:th="http://www.thymeleaf.org"> 4 5<head> 6 <meta charset="utf-8"> 7 <title> Insert title here </title> 8</head> 9 10<body> 11 速度を入力してください<br> 12 <form action="if-unless.html" th:action="@{/receive/receive-info}" method="post"> 13 <input type="text" name="speed"><br> 14 <button>送信</button> 15 <form /> 16</body> 17 18</html> 19 20 21~judge .html~ 22<!DOCTYPE html> 23<html lang="ja" xmlns:th="http://www.thymeleaf.org"> 24 25<head> 26 <meta charset="utf-8"> 27 <title> Insert title here </title> 28</head> 29 30<body> 31 <span th:if="${car.speed <= 60}" th:text="法定速度です">dummy</span> 32 33 <span th:unless="${car.speed <= 60}" th;text="スピード違反です">dummy</span> 34 35</html>

java

1JudgeController.java~ 2package com.example.controller; 3 4import org.springframework.stereotype.Controller; 5import org.springframework.ui.Model; 6import org.springframework.web.bind.annotation.ModelAttribute; 7import org.springframework.web.bind.annotation.RequestMapping; 8 9import com.example.Form.ReceiveForm; 10import com.example.domain.Car; 11 12@Controller 13@RequestMapping("/receive") 14public class JudgeController { 15 16 @ModelAttribute 17 public ReceiveForm setUpForm() { 18 return new ReceiveForm(); 19 } 20 21 @RequestMapping("") 22 public String index() { 23 return "info-form"; 24 } 25 26 @RequestMapping("/receive-info") 27 public String inputSpeed(String speed,Model model) { 28 Car car = new Car(); 29 30 int speed = 0; 31 32 model.addAttribute("speed",speed); 33 34 car.setSpeed(speed); 35 36 return "judge"; 37 } 38 39} 40 41 42 43ReceiveForm.java~ 44package com.example.Form; 45 46public class ReceiveForm { 47 private String name; 48 private String speed; 49 50 public String getName() { 51 return name; 52 } 53 public void setName(String name) { 54 this.name = name; 55 } 56 public String getSpeed() { 57 return speed; 58 } 59 public void setSpeed(String speed) { 60 this.speed = speed; 61 } 62 63 @Override 64 public String toString() { 65 return "ReceiveForm [name=" + name + ", speed=" + speed + "]"; 66 } 67 68} 69 70 71Car.java~ 72package com.example.domain; 73 74public class Car { 75 private String name; 76 private int speed; 77 78 public String getName() { 79 return name; 80 } 81 82 public void setName(String name) { 83 this.name = name; 84 } 85 86 public int getSpeed() { 87 return speed; 88 } 89 90 public void setSpeed(int speed) { 91 this.speed = speed; 92 } 93 94}

試したこと

・各ファイルの格納場所は問題ないと考えております。
・恐らく、JudgeControllerのコード(inputSpeedメソッド)が違うと思うのですが、
考えても分からないため、何卒ご教示願います。

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

Springのバージョンは3.0
javaのバージョンは17です。

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

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

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

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

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

jimbe

2023/01/22 11:33

コードは画像で無く文字列としてコードのマークダウンを利用して提示してください。
yyomu

2023/01/22 14:27

ご指摘ありがとうございます。 承知いたしました、再度記入して質問してみます。
YT0014

2023/01/23 06:23

新たに質問を起こされているようですが、質問は編集できますので、この質問の画像を削除し、コードを記述し、新しいほうの質問の削除依頼をされますよう、お願いします。
yyomu

2023/01/23 14:23

丁寧なアドバイスありがとうございます。 そうしてみます。
YT0014

2023/01/24 05:34

404が出たページのURLをご提示ください。 また、Spring Bootの最新は、3.0です。 16.1は、javaのバージョンだと思われますので、Spring Bootのバージョンをご確認のうえ、ご提示ください。 あわせて、開発/実行環境もお知らせください。 Eclipse STSをお使いでしょうか?
yyomu

2023/01/25 14:31

ご対応ありがとうございます。 http://localhost:8080/receiveにて入力フォームに移動し、数値入力・送信後、http://localhost:8080/receive/receive-infoにフォワードした際に404のエラーメッセージ(内容は本文エラーメッセージ欄に追記しました)がブラウザ上に表示されました。 また、Spring Bootのバージョンは3.0、javaのバージョンは17でした。勘違いしておりました、ご指摘ありがとうました。また、開発/実行環境というのは、windowノートパソコンにて実施という答え方で問題ないでしょうか?Eclipse STSというのがよく分からないのですが、Eclipseのworkspaceを利用することができたり、同じような開発画面ですので、恐らくEclipse STSを使用しております。 知識不足にて正確なお答えができず申し訳ございません。
yyomu

2023/01/26 14:34

judgeController.javaの26行目相対パス指定を「/receive/receive-info」から「/receive-info」に変更することで404のエラーが解消されました!ありがとうございます。 一方、今度は500のエラーが発生してしまいました。エラーメッセージを確認した所、speedのセッターにString型を引数としているからエラーが発生しているのだと思いますが、どう訂正すべきなのかが分かりません…。 info-form.htmlで入力された速度(Stirng型)をcarインスタンスのspeedフィールドに取得させたいのですが…。(スコープなど利用するのでしょうか。) 以上、何卒よろしくお願いいたします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問