前提・実現したいこと
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/ツールのバージョンなど)
初学者なので、ソースコードなどがある場合は載せてもらえると助かります。
また、分かりやすく教えてもらえると助かります。
見せてほしいコードの部分があれば聞いてくだされば載せますのでよろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/08/23 00:04
2020/08/23 00:06