前提・実現したいこと
現在SpringBootの学習に着手したのですが、初歩で転びました。
始めたばかりなのでうまく伝えられないかもしれませんが、
rIdをプライマリキーに登録画面を作成しています。
プライマリキー違反でのエラー画面を表示したいのですが
localhost:8080/にアクセスしてもWhitelabelErrorPage400 となり、望んでいる画面になりません。。
お力添えをどうぞよろしくお願い致します。
エラーメッセージ
There was an unexpected error (type=Bad Request, status=400). Required RForm parameter 'rId' is not present org.springframework.web.bind.MissingServletRequestParameterException: Required RForm parameter 'rId' is not present
SQL
/** プライマリキー違反表示 **/ @Select("SELECT rid FROM TBL_R WHERE rid=#{rId}") List<String> selectSQL02(@Param("rId") String rId); /** 登録 **/ @Insert("INSERT INTO TBL_R (regist_id,regist_name,regist_tel,regist_postalcode,regist_address1, VALUES (#{rId},#{rName},#{rTel},#{rPostal},#{rA1},)") String insertSQL01(@Param("rId") String rId, @Param("rName") String rName, @Param("rTel") String rTel, @Param("rPostal") String rPostal, @Param("rA1") String rA1;
Controller.java
@PostMapping("/viewComplete") public String viewComplete(Model model, ReForm rId) { List<String> list = new ArrayList<String>(); list = service.getId(registId.get_id()); if (list.size() > 0) { model.addAttribute("errMessage", "登録できません。"); return "information/erorr" ; } String regist1 = new String(); result = service.setlist(rId); return "information/complete"; }
Service.java
/** * 情報テーブルに情報の登録 * @return 登録 */ public List<String> getId(String rId) { List<String> result = new ArrayList<String>(); result = sqlMapper.selectSQL09(rId); return result; } public String setList(ReForm reForm) { String result = new String(); result = sqlMapper.insertSQL01( registForm.getRegist_id(), registForm.getRegist_name(), registForm.getRegist_tel(), registForm.getRegist_fax(), registForm.getRegist_representative(), registForm.getRegist_postalcode(), registForm.getRegist_address1(), registForm.getRegist_address2(), registForm.getRegist_address3(), registForm.getRegist_address4()); return result; }
regist.html
<!doctype html> <html xmlns:th="http://www.thymeleaf.org"> <head> <meta charset="UTF-8"> <title>情報登録画面</title> <script src=“https://yubinbango.github..io/yubinbango/yubinbango.js” charset=“UTF-8”></script> </head> <body> <div style="text-align: center"> <h2 style="text-align: center">情報登録</h2> <form th:action="@{/viewComplete}" th:object="${reForm}" method="POST" > <table style="margin: 0 auto"> <tr> <td style="width: 60">ID</td> <td><input type=text size="30" name="re_id"></input></td> </tr> <tr> <td style="width: 60">名前</td> <td><input type=text size="30" name="re_name"></input></td> </tr> <tr> <td style="width: 70">電話番号</td> <td><input type=tel size="30" name="re_tel"></input></td> </tr> <tr> <td style="width: 70">郵便番号</td> <td><input type=text size="30" name="re_postalcode"></input></td> </tr> <tr> <td style="width: 70">住所1</td> <td><input type=text size="30" name="re_address1"></input></td> </tr> <tr> <td colspan=2 style="text-align: center"> <input type="submit" value="登録"></td> </tr> </table> <br><br> <a th:href="@{/viewInformationList}">情報一覧へ戻る</a> </form> </div> </body> </html>
complete.html
<!doctype html> <html xmlns:th="http://www.thymeleaf.org"> <head> <meta charset="UTF-8"> <title>登録完了</title> </head> <body> <div style="text-align: center"> <h2 style="text-align: center">登録完了</h2> <p><a th:href="@{/viewInformationList}">情報一覧へ戻る</a></p> </div> </body> </html>
### ReForm.java
package jp.co.lain.information; @Data public class ReForm { private String re_id; private String re_name; private String re_tel; private String re_postalcode; private String re_address1; }
「機械学習」は本件とどう関係するのでしょうか
またSreviseとは?
Serviceなら分かるのですが、
一字違えば別のものですので決まっている名前はコピペするくらいの慎重さを持たれたほうがエラーに悩むことも少なくなるのではと
ご指摘ありがとうございます。修正いたしました。
Srevice
でいいんですね?
はい、大丈夫です。
では独自機能になるので実装を提示してください。Springにはない機能です。存在するのはService
https://spring.pleiades.io/spring-framework/docs/current/javadoc-api/org/springframework/stereotype/Service.html
解決することができました。コメントしていただきありがとうございました。
せめてSreviceは正しましょうよ。(Serviceなら)
あとから見た人が戸惑います
修正したのですが、、反映されてないですか?
質問本文よくご確認を。
対応されていたらこんなこといつまでも指摘しません。
Srevice.java
ページ内検索したらすぐですよ。目に頼らないこと。
回答1件
あなたの回答
tips
プレビュー