
前提・実現したいこと
入力フォームで未入力チェックをしたいのですが、現在半角数字を入力したときにはエラーメッセージが表示されるようになっていますが、全角や文字列が入力されるとエラーが出てしまいます。ユーザーが全角や文字を入力したときにもエラーの処理を行いたいです。
発生している問題・エラーメッセージ
try,catchの例外処理がうまく使えていない。
エラーメッセージ
該当のソースコード
java
1protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 2 // TODO Auto-generated method stub 3 EntityManager em = DBUtil.createEntityManager(); 4 5 6 →パラメータを取得する際に、ここにtry? 7 8 String age = request.getParameter("age"); 9 String gender_flag = request.getParameter("gender_flag"); 10 String height = request.getParameter("height"); 11 String weight = request.getParameter("weight"); 12 String fat_percentage = request.getParameter("fat_percentage"); 13 String waist = request.getParameter("waist"); 14 String activity = request.getParameter("activity"); 15 16 →取得後catch(NumberException)? 17 18 Health health = new Health(); 19 20 health.setAge((age != null && age.equals("")) ? null : Integer.parseInt(age)); 21 health.setGender_flag(gender_flag); 22 health.setHeight((height != null && height.equals("")) ? null : Double.parseDouble(height)); 23 health.setWeight((weight != null && weight.equals("")) ? null : Double.parseDouble(weight)); 24 health.setFat_percentage((fat_percentage != null && fat_percentage.equals("")) ? 0 : Double.parseDouble(fat_percentage)); 25 health.setWaist((waist != null && waist.equals("")) ? 0 : Double.parseDouble(waist)); 26 health.setActivity(activity); 27 28 →それともerrorチェック前? 29 30 // 未入力チェック(年齢、身長、体重のみ必須) 31 List<String> errors = HealthValidator.validate(health); 32 if(errors.size() > 0) { 33 em.close(); 34 request.setAttribute("_token", request.getSession().getId()); 35 request.setAttribute("health", health); 36 request.setAttribute("errors", errors); 37 RequestDispatcher rd = request.getRequestDispatcher("/WEB-INF/views/health/healthCheck.jsp"); 38 rd.forward(request, response); 39 } 40 41 HealthCheckLogic healthCheckLogic = new HealthCheckLogic(); 42 43 healthCheckLogic.execute(health); 44 45 request.setAttribute("health", health); 46 47 RequestDispatcher dispatcher = request.getRequestDispatcher("/WEB-INF/views/health/healthCheckResult.jsp"); 48 dispatcher.forward(request, response); 49 } 50}
試したこと
try,catchとNumberExceptionを使用すれば数字以外を処理できると調べたのですが、使いどころ(コードの挿入箇所)が理解できず苦しんでいます。初心者な質問で申し訳ありませんがご助力お願いします。
補足情報(FW/ツールのバージョンなど)
eclipse
Tomcat8

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2019/08/18 10:08