ブラウザから「http://localhost:8080/login」としてアクセスした際に、エラーが表示されました。
実行は、Eclipseより、実行ボタンを押し、行いました。
エラー内容は以下の通りです。
テンプレートファイル「login.html」は以下になります。
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>ログイン画面</title> <link th:href="@{/css/login.css}" rel="stylesheet" type="text/css"> </head> <body> <div class="contain" th:object="${CheckForm}> <ul> <li th:each="error:${#fields.detailedErrors()}" class="err" th:text="${error.message}"></li> </ul> <div class="login_title"> <p>LOG IN</p> </div> <form class="login_form" method="post" th:action="@{/top}"> <p><input class="mail_field" type="email" name="email" placeholder="Email"></p> <p><input class="password_field" type="password" name="password" placeholder="Password"></p> <p><input class="login_btn" type="submit" value="Log in"></p> </form> </div> </body> </html>
コントローラークラスの「LoginController.java」は以下になります。
package com.example.demo; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.validation.BindingResult; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; @Controller public class LoginController{ @RequestMapping(value="/login",method=RequestMethod.GET) public String input(Model model){ return "login"; } @RequestMapping(value="/top",method=RequestMethod.POST) public String indexFormSubmit(@Validated CheckForm checkForm,BindingResult error,Model model){ System.out.println("20"); if(error.hasErrors()) { System.out.println("22"); return "login"; } System.out.println("26"); return "top"; } }
エラーの原因としまして、Qiitaの記事から推測するに、テンプレートファイルに問題があるような気がするのですが、どこがエラーの原因となってしまっているのかわかりません。
どなたか、エラー解決の為、ご助言頂けましたら幸いです
追記です
過去の質問を参考に、 コントローラークラスのindexFormSubmit
メソッドの引数を以下のように修正しましたが、同様の結果が表示されてしまいました。
public String indexFormSubmit(@ModelAttribute("checkForm")@Validated CheckForm checkForm,BindingResult error,Model model){
また、login.htmlをth:object="${checkForm}
とし、変数部分をキャメルケース表記にしてみましたが、結果は変わりませんでした。
回答2件
あなたの回答
tips
プレビュー