実現したいこと
java.lang.NumberFormatException:For input string: "on" エラーを解決したいと思っております
前提
spring boot ,thymeleafを使い,社員管理システムを作成中下記の様なエラーが発生いたしました.
解決方法などをご教授いただければと思います.
発生している問題・エラーメッセージ
java.lang.NumberFormatException: For input string: "on" at java.lang.NumberFormatException.forInputString(NumberFormatException.java:67) ~[?:?] at java.lang.Integer.parseInt(Integer.java:668) ~[?:?] at java.lang.Integer.parseInt(Integer.java:786) ~[?:?]
該当のソースコード
IndexController.java
1package jp.co.sss.sys.controller; 2 3import java.text.ParseException; 4import java.text.SimpleDateFormat; 5import java.util.Date; 6import java.util.List; 7 8import javax.servlet.http.HttpServletRequest; 9import javax.servlet.http.HttpServletResponse; 10import javax.servlet.http.HttpSession; 11 12import org.springframework.beans.factory.annotation.Autowired; 13import org.springframework.stereotype.Controller; 14import org.springframework.ui.Model; 15import org.springframework.validation.BindingResult; 16import org.springframework.validation.annotation.Validated; 17import org.springframework.web.bind.annotation.RequestMapping; 18import org.springframework.web.bind.annotation.RequestMethod; 19import org.springframework.web.bind.annotation.SessionAttributes; 20 21import jp.co.sss.sys.entity.Employee; 22import jp.co.sss.sys.form.LoginForm; 23import jp.co.sss.sys.repository.EmployeeRepository; 24 25@Controller 26@SessionAttributes(types = Employee.class) 27public class IndexController { 28 29 @Autowired 30 EmployeeRepository empRepository; 31 LoginForm loginform; 32 33 /** 34 * ログイン画面を表示する 35 * @param loginForm 36 * @return login.html 37 */ 38 @RequestMapping(path = "/login", method = RequestMethod.GET) 39 public String login( LoginForm loginForm,BindingResult br,Model model) { 40 return "login"; 41 } 42 @Autowired 43 HttpSession session; 44 45 // 処理 46 47 48 /** 49 * 入力された値を元にログイン認証し、トップ画面に遷移する 50 * 51 * @param req 52 * @param res 53 * @param loginForm 54 * @return top.html 55 */ 56 @RequestMapping(path = "/top", method = RequestMethod.POST) 57 public String login(@Validated LoginForm loginForm, HttpServletRequest req, HttpServletResponse res,BindingResult br,Model model,HttpSession session) { 58 //ログインした人の情報 59 String empId = req.getParameter("empId"); 60 String password = req.getParameter("password"); 61 62 63 Employee employee = empRepository.findByEmpIdAndPassword(empId, password); 64 65 66 67 68 //セッションデータ設定 69 session.setAttribute("userInfo",employee); 70 //ログインユーザー情報 71 model.addAttribute("employee",employee); 72 73 //ログインチェック 74 if(employee == null) { 75 //存在しない場合 76 return "login"; 77 78 }else { 79 80 //存在した場合 81 //社員情報一覧 82 List<Employee> empAll= empRepository.findAll(); 83 model.addAttribute("empAll",empAll); 84 85 return "top"; 86 87 } 88 } 89 90 @RequestMapping(path = "/top", method = RequestMethod.GET) 91 public String top(@Validated LoginForm loginForm, HttpServletRequest req, HttpServletResponse res,BindingResult br,Model model,HttpSession session) { 92 List<Employee> empAll= empRepository.findAll(); 93 model.addAttribute("empAll",empAll); 94 95 return "top"; 96 97 } 98 99 @RequestMapping(path = "/mypage", method = RequestMethod.POST) 100 public String empUser(@Validated LoginForm loginForm, HttpServletRequest req, HttpServletResponse res,BindingResult br,Model model,HttpSession session) throws ParseException { 101 session = req.getSession(); 102 103 String empName = req.getParameter("empName"); 104 String password = req.getParameter("password"); 105 String date = req.getParameter("birthday"); 106 String savegender = req.getParameter("gender"); 107 108 SimpleDateFormat sdFormat = new SimpleDateFormat("yyyy-MM-dd"); 109 Date birthday = sdFormat.parse(date); 110 111 int gender = Integer.parseInt(savegender); 112 113 Employee userInfo = (Employee) session.getAttribute("userInfo"); 114 userInfo.setEmpName(empName); 115 userInfo.setPassword(password); 116 userInfo.setBirthday(birthday); 117 userInfo.setGender(gender); 118 119 Employee updateEmployee = empRepository.save(userInfo); 120 return "edit_fin"; 121 } 122 // TODO 自動生成されたメソッド・スタブ 123 //ログインユーザー情報 124 //マイページリンク押下,既存情報の出力 125 @RequestMapping(path = "/mypage", method = RequestMethod.GET) 126 public String empLink(@Validated LoginForm loginForm, HttpServletRequest req, HttpServletResponse res,BindingResult br,Model model,HttpSession session) { 127 session = req.getSession(); 128 Object userInfo=session.getAttribute("userInfo"); 129 model.addAttribute("userInfo",userInfo); 130 return "mypage"; 131 132 133 } 134 135} 136
mypage.html
1<!DOCTYPE html> 2<html xmlns:th="http://www.thymeleaf.org"> 3<head> 4<meta charset="UTF-8" /> 5<link th:href="@{/css/style.css}" rel="stylesheet" /> 6<link th:href="@{/css/layout.css}" rel="stylesheet" /> 7<title>マイページ変更・確認画面</title> 8</head> 9<body> 10 <!-- ヘッダー --> 11 12 <header th:include="layout/header :: head"> 13 14 15 </header> 16 17 <!-- サイドバー --> 18 <aside th:include="layout/aside :: side"></aside> 19 <!-- メイン --> 20 <article class="mypage"> 21 <form action="" th:action="@{/mypage}" th:field="${userUpdate}" 22 method="post"> 23 <h3 class="page_title">マイページ変更・確認画面</h3> 24 25 26 <table class="table employee"> 27 28 <tr th:each="userInfo : ${userInfo}" th:object="${userInfo}"> 29 <tr> 30 <th class="cell_title">社員番号</th> 31 <td th:text="*{userInfo.empId}"></td> 32 </tr> 33 <tr> 34 <th class="cell_title">名前</th> 35 <td><input type="text" name="empName" 36 th:value="${userInfo.empName}" /></td> 37 38 </tr> 39 <tr> 40 <th class="cell_title">パスワード</th> 41 <td><input type="password" name="password" 42 th:value="${userInfo.password}" /></td> 43 44 </tr> 45 <tr> 46 <th class="cell_title">生年月日</th> 47 <td><input type="text" name="birthday" 48 th:value="${#dates.format(userInfo.birthday,'yyyy-MM-dd')}" /></td> 49 50 </tr> 51 <tr> 52 <th class="cell_title">性別</th> 53 <td><input type="radio" name="gender" 54 th:value="${userInfo.gender}" 55 th:switch="*{userInfo.gender == 1}" 56 th:checked="${userInfo.gender == 1}" /> 男 <input type="radio" 57 name="gender" th:switch="*{userInfo.gender == 2}" 58 th:checked="${userInfo.gender == 2}"> 女</td> 59 60 61 </tr> 62 </table> 63 <div class="btn_area_center"> 64 <input type="submit" value="変更確定" class="btn"> 65 </div> 66 67 </form> 68 </article> 69 <!-- フッダー --> 70 <footer th:include="layout/footer :: foot"></footer> 71 72</body> 73</html>
試したこと
java.lang.NumberFormatException:
文字列からint型へ変換する際のエラーと認識しておりました.
⇨IndexController.java内のint型変換のソースコードの確認.
該当箇所が見つけられませんでした.
補足情報(FW/ツールのバージョンなど)
eclipce2022
postgreSQL
javaSE-16
回答1件
あなたの回答
tips
プレビュー