下記のソースを追加したら実行時システムエラーが出るようになりました。
ですのでここの部分が大きな問題にはなっていると思うのです。
lang
1range = Integer.parseInt (height); 2 if(range>100 && range<300){ 3 super.setErrMsg("身長は100cmから300cmの間で入力してください。"); 4 errExistsFlg = true; 5 }
エラーはjava.lang.NumberFormatException: For input string: ""
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48
となっております。
###前提・実現したいこと
Javaで入力された値に対して、メッセージが出るようなものを
作成しておりまして、体重と身長の範囲を追加で入力してみたのですが、
コンパイルは通り、実行してみるとシステムエラーとなります。
範囲のif文の入れている場所が悪いのでしょうか?
よろしければ教えてください。
ソースも添付させていただきます。
###ソースコード
lang
1/** 2 * ユーザーマスタの新規登録を行います。 3 * 4 * @param request 5 * リクエスト情報 6 * @param con 7 * コネクション 8 * @return 処理結果DTO 9 * @throws Exception 10 */ 11 private ProcessResult doInsert(HttpServletRequest request, Connection con) 12 throws Exception { 13 ProcessResult result = new ProcessResult(); 14 15 String id= request.getParameter("id") ; 16 String name = request.getParameter("name"); 17 String kana = request.getParameter("kana"); 18 String gender = request.getParameter("gender"); 19 String height = request.getParameter("height"); 20 String weight = request.getParameter("weight"); 21 String birthday = request.getParameter("birthday"); 22 String zipCode = request.getParameter("zipCode"); 23 String address = request.getParameter("address"); 24 String phone = request.getParameter("phone"); 25 String deleteFlag = request.getParameter("deleteFlag"); 26 String registTime = request.getParameter("registTime"); 27 int range = 0; 28 29 boolean errExistsFlg = false; 30 // 必須チェック 31 if (StringUtils.isBlank(id.trim())) { 32 super.setErrMsg("顧客IDは必ず入力してください。"); 33 errExistsFlg = true; 34 } 35 if (StringUtils.isBlank(name.trim())) { 36 super.setErrMsg("顧客漢字名は必ず入力してください。"); 37 errExistsFlg = true; 38 } 39 if (StringUtils.isBlank(kana.trim())) { 40 super.setErrMsg("顧客カナ名は必ず入力してください。"); 41 errExistsFlg = true; 42 } 43 if (StringUtils.isBlank(height.trim())) { 44 super.setErrMsg("身長は必ず入力してください。"); 45 errExistsFlg = true; 46 } 47 if (StringUtils.isBlank(weight.trim())) { 48 super.setErrMsg("体重は必ず入力してください。"); 49 errExistsFlg = true; 50 } 51 if (StringUtils.isBlank(birthday.trim())) { 52 super.setErrMsg("生年月日は必ず入力してください。"); 53 errExistsFlg = true; 54 } 55 56 // 文字列数チェック 57 if (StringUtils.chkByte(id, 7)) { 58 super.setErrMsg("顧客IDは7文字で入力してください。"); 59 errExistsFlg = true; 60 } 61 if (StringUtils.chkByte(name, 40)) { 62 super.setErrMsg("顧客漢字名は20文字以内で入力してください。"); 63 errExistsFlg = true; 64 } 65 if (StringUtils.chkByte(kana, 40)) { 66 super.setErrMsg("顧客カナ名は20文字以内で入力してください。"); 67 errExistsFlg = true; 68 } 69 if (StringUtils.chkByte(height, 5)) { 70 super.setErrMsg("身長は5文字以内で入力してください。"); 71 errExistsFlg = true; 72 } 73 range = Integer.parseInt (height); 74 if(range>100 && range<300){ 75 super.setErrMsg("身長は100cmから300cmの間で入力してください。"); 76 errExistsFlg = true; 77 } 78 if (StringUtils.chkByte(weight, 5)) { 79 super.setErrMsg("体重は5文字以内で入力してください。"); 80 errExistsFlg = true; 81 } 82 range = Integer.parseInt (weight); 83 if(range>10 && range<200){ 84 super.setErrMsg("体重は10kgから200kgの間で入力してください。"); 85 errExistsFlg = true; 86 } 87 if (StringUtils.chkByte(birthday, 10)) { 88 super.setErrMsg("生年月日は10文字以内で入力してください。"); 89 errExistsFlg = true; 90 } 91 if (StringUtils.chkByte(zipCode, 7)) { 92 super.setErrMsg("郵便番号は7文字で入力してください。"); 93 errExistsFlg = true; 94 } 95 if (StringUtils.chkByte(address, 120)) { 96 super.setErrMsg("住所は60文字以内で入力してください。"); 97 errExistsFlg = true; 98 } 99 if (StringUtils.chkByte(phone, 13)) { 100 super.setErrMsg("電話番号は13文字以内で入力してください。"); 101 errExistsFlg = true; 102 } 103 104 // 入力制限チェック 105 if (!StringUtils.chkMatch("^[0-9a-zA-Z]+$", id, false)) { 106 super.setErrMsg("顧客IDは半角で入力してください。"); 107 super.setErrMsg("顧客IDは英数字を入力してください。"); 108 errExistsFlg = true; 109 } 110 if (!StringUtils.chkMatch("^[^ -~。-゚]+$", name, false)) { 111 super.setErrMsg("顧客漢字名は全角で入力してください。"); 112 errExistsFlg = true; 113 } 114 if (!StringUtils.chkMatch("^[ァ-ヶ]+$", kana, false)) { 115 super.setErrMsg("顧客カナ名は全角で入力してください。"); 116 super.setErrMsg("顧客カナ名はカタカナを入力してください。"); 117 errExistsFlg = true; 118 } 119 if (!StringUtils.chkMatch("^[0-9]+$", height, false)) { 120 super.setErrMsg("身長は半角で入力してください。"); 121 super.setErrMsg("身長は数字を入力してください。"); 122 errExistsFlg = true; 123 } 124 if (!StringUtils.chkMatch("^[0-9]+$", weight, false)) { 125 super.setErrMsg("体重は半角で入力してください。"); 126 super.setErrMsg("体重は数字を入力してください。"); 127 errExistsFlg = true; 128 } 129 if (!StringUtils.chkMatch("^[0-9]+$", birthday, false)) { 130 super.setErrMsg("生年月日は半角で入力してください。"); 131 super.setErrMsg("生年月日は数字を入力してください。"); 132 errExistsFlg = true; 133 } 134 if (!StringUtils.chkMatch("^[0-9]+$", zipCode, false)) { 135 super.setErrMsg("郵便番号は半角で入力してください。"); 136 super.setErrMsg("郵便番号は数字を入力してください。"); 137 errExistsFlg = true; 138 } 139 if (errExistsFlg) { 140 // 入力チェックでエラーの場合は処理終了 141 result.setUrl(requestPageUrl); 142 result.setNormalEndFlg(false); 143 // 処理モードをセットする。 144 super.setSessionAttribute("processType", "insert"); 145 return result; 146 } 147 148 // ID重複チェック 149 List<CustomerDto> retList = this.getCustomerList(id, con); 150 if (retList.size() > 0) { 151 super.setErrMsg("IDされた顧客IDはすでに存在します。別の顧客IDで再度登録し直してください。"); 152 // 一覧検索画面に戻す。 153 result.setUrl(requestPageUrl); 154 result.setNormalEndFlg(false); 155 // 処理モードをセットする。 156 super.setSessionAttribute("id", id); 157 super.setSessionAttribute("name", name); 158 super.setSessionAttribute("kana", kana); 159 super.setSessionAttribute("gender", gender); 160 super.setSessionAttribute("height", height); 161 super.setSessionAttribute("weight", weight); 162 super.setSessionAttribute("birthday", birthday); 163 super.setSessionAttribute("zipCode", zipCode); 164 super.setSessionAttribute("address", address); 165 super.setSessionAttribute("phone", phone); 166 super.setSessionAttribute("processType", "insert"); 167 return result; 168 } 169 170 CustomerDto paramDto = new CustomerDto(); 171 paramDto.setId(id); 172 paramDto.setName(name); 173 paramDto.setKana(kana); 174 paramDto.setGender(gender); 175 paramDto.setHeight(height); 176 paramDto.setWeight(weight); 177 paramDto.setBirthday(birthday); 178 paramDto.setZipCode(zipCode); 179 paramDto.setAddress(address); 180 paramDto.setPhone(phone); 181 paramDto.setDeleteFlag(deleteFlag); 182 paramDto.setRegistTime(registTime); 183 184 CustomerInsertDao insertDao = new CustomerInsertDao(); 185 insertDao.setParam(paramDto); 186 insertDao.execute(con); 187 188 result.setUrl(requestPageUrl); 189 result.setNormalEndFlg(true); 190 result.setMsg("登録が完了しました。"); 191 192 super.setSessionAttribute("id", id); 193 super.setSessionAttribute("name", name); 194 super.setSessionAttribute("kana", kana); 195 super.setSessionAttribute("gender", gender); 196 super.setSessionAttribute("height", height); 197 super.setSessionAttribute("weight", weight); 198 super.setSessionAttribute("birthday", birthday); 199 super.setSessionAttribute("zipCode", zipCode); 200 super.setSessionAttribute("address", address); 201 super.setSessionAttribute("phone", phone); 202 203 // 処理モードをセットする。 204 super.setSessionAttribute("processType", "insert"); 205 return result; 206 } 207
###補足情報(言語/FW/ツール等のバージョンなど)
回答2件
あなたの回答
tips
プレビュー