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

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

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

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

Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

ログイン

ログインは、ユーザーがコンピューターシステムにアクセスするプロセスの事を呼びます。

コードレビュー

コードレビューは、ソフトウェア開発の一工程で、 ソースコードの検査を行い、開発工程で見過ごされた誤りを検出する事で、 ソフトウェア品質を高めるためのものです。

Spring Boot

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

Q&A

解決済

1回答

1446閲覧

ログインする時のぺージ移動でエラーが出てしまう

oosiaries

総合スコア8

Java

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

Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

ログイン

ログインは、ユーザーがコンピューターシステムにアクセスするプロセスの事を呼びます。

コードレビュー

コードレビューは、ソフトウェア開発の一工程で、 ソースコードの検査を行い、開発工程で見過ごされた誤りを検出する事で、 ソフトウェア品質を高めるためのものです。

Spring Boot

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

0グッド

0クリップ

投稿2020/08/22 05:44

前提・実現したいこと

SpringBootを使って簡易ログイン機能を作りたいのですが、ログインボタンを押してもエラーが出てしまいます。
エラーを解決してログインできる状態にしたいです。

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

Whitelabel Error Page This application has no explicit mapping for /error, so you are seeing this as a fallback. Sat Aug 22 14:26:47 JST 2020 There was an unexpected error (type=Bad Request, status=400).

該当のソースコード

<!DOCTYPE html> <html xmlns:th="http://www.thymeleaf.org"> <head> <meta charset="UTF-8"/> <title>Insert title here</title> </head> <body> <form name="loginForm" action="/login"> <div> <span>User name:</span> <input type="text" name="userName" /> </div> <div> <span>Password:</span> <input type="password" name="password" /> </div> <button type="submit">Login</button> </form> </body> </html>
<!DOCTYPE html> <html xmlns:th="http://www.thymeleaf.org"> <head> <meta charset="UTF-8" /> <title>Insert title here</title> </head> <body> <p th:text="${message}" /> </body> </html>
<!DOCTYPE html> <html xmlns:th="http://www.thymeleaf.org"> <head> <meta charset="UTF-8"/> <title>Insert title here</title> </head> <body> <form name="loginForm" action="/login"> <div> <span>User name:</span> <input type="text" name="userName" /> </div> <div> <span>Password:</span> <input type="password" name="password" /> </div> <button type="submit">Login</button> </form> </body> </html>
package com.example.easylogin.model.dao; import java.util.List; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.stereotype.Repository; import com.example.easylogin.model.entity.User; @Repository public interface UserRepository extends JpaRepository<User, Long> { List<User> findByUserNameAndPassword(String userName, String password); }
package com.example.easylogin.controller; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import com.example.easylogin.model.dao.UserRepository; import com.example.easylogin.model.entity.User; @Controller public class LoginController { @Autowired UserRepository userRepos; @RequestMapping("/") public String index() { return "index"; } @RequestMapping("/login") public String login( @RequestParam("username") String userName, @RequestParam("password") String password, Model m) { String message = "Welcome! "; List<User> users = userRepos.findByUserNameAndPassword(userName, password); if(users.size() > 0) { User user = users.get(0); message += user.getFullName(); } else { message += "guest"; } m.addAttribute("message", message); return "login"; } }
package com.example.easylogin.model.entity; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.Table; @Entity @Table(name="user") public class User { @Id @Column(name="id") @GeneratedValue(strategy=GenerationType.IDENTITY) private long id; @Column(name="user_name") private String userName; @Column(name="password") private String password; @Column(name="full_name") private String fullName; public long getId( ) { return id; } public void setId(long id) { this.id = id; } public String getUserName() { return userName; } public void setUserName(String userName){ this.userName = userName; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getFullName() { return fullName; } public void setFullName(String fullName) { this.fullName = fullName; } }

試したこと

キャッシュ、クッキーのクリアをしましたが、変化がありませんでした。

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

初学者なので、ソースコードなどがある場合は載せてもらえると助かります。
また、分かりやすく教えてもらえると助かります。
見せてほしいコードの部分があれば聞いてくだされば載せますのでよろしくお願いします。

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

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

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

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

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

guest

回答1

0

ベストアンサー

ログインチェックを行うControllerにて

java

1@RequestParam("username") String userName,

としていますが、画面側で

html

1<input type="text" name="userName" />

としているため、必須パラメータである username (大文字小文字が異なると受け取りません)がないため、400 Bad Request が返されます。

username ないしは userName どちらかに揃えましょう。

投稿2020/08/22 13:51

A-pZ

総合スコア12011

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

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

oosiaries

2020/08/23 00:04

必須パラメータを全く同じにしないと情報の受け取りができないということですね。統一してみたらエラーがでることなくできました。 ありがとうございます!ベストアンサーにさせてもらいます。
oosiaries

2020/08/23 00:06

パラメータを大文字も小文字も全く同じにしないと受け取りができないということが分かりました。 分かりやすい説明をありがとうございます。 ベストアンサーにさせてもらいます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問