Jspフォームから送信された値をservletにチェックしてエラーメッセージを表示することですが、
条件は以下の通りです、
会員番号【必須】:0以上整数8桁
名前【必須】:1~32 文字のテキスト
メールアドレス:
メールアドレス【確認用】:
ある程度までできているんですが、途中で気づいたのは同じものを何回も書いていると、無駄なことやっていると気づいたんですが、私の書き方よりもっと効率よい書き方ありますか。
普通はバリテーションチェックは同のように行なっていますか
よろしくお願いいたします。
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("UTF-8"); String emp_input_date = request.getParameter("year")+"-"+request.getParameter("month")+"-"+request.getParameter("day"); System.out.println("1"); // 社員番号とが必須、8桁以上、社員名は 1~32 文字のテキスト if (request.getParameter("empid").length() == 0 && request.getParameter("name").length()== 0) { System.out.println("2"); request.setAttribute("imp_id_errmsg", "0以上整数8桁以内で入力してください"); request.setAttribute("imp_name_errmsg", "氏名は 1~32 文字のテキストで入力してください"); if (request.getParameter("email").equals(request.getParameter("confirm_mail")) == false) { request.setAttribute("imp_email_confirm_errmsg", "確認入力と一致しません"); } System.out.print(request.getParameter("dept")); request.setAttribute("value_remain", inp_value(request.getParameter("empid"), request.getParameter("name"), request.getParameter("email"), request.getParameter("confirm_mail"), request.getParameter("gender"), request.getParameter("dept"))); RequestDispatcher view = request.getRequestDispatcher("/add.jsp"); view.forward(request, response); } else if (request.getParameter("empid").length() > 8) { System.out.println("3"); // 社員番号エラーメッセージ request.setAttribute("imp_id_errmsg", "0以上整数8桁以内で入力してください"); if (request.getParameter("email").equals(request.getParameter("confirm_mail")) == false) { request.setAttribute("imp_email_confirm_errmsg", "確認入力と一致しません"); } if (request.getParameter("name").length() > 32 || request.getParameter("name").length() == 0) { request.setAttribute("imp_name_errmsg", "氏名は 1~32 文字のテキストで入力してください"); } request.setAttribute("value_remain", inp_value(request.getParameter("empid"), request.getParameter("name"), request.getParameter("email"), request.getParameter("confirm_mail"), request.getParameter("gender"), request.getParameter("dept"))); RequestDispatcher view = request.getRequestDispatcher("/add.jsp"); view.forward(request, response); } else if (isNumber(request.getParameter("empid")) == false || Integer.parseInt(request.getParameter("empid")) == 0) { System.out.println("4"); request.setAttribute("imp_id_errmsg", "0以上整数8桁以内で入力してください"); request.setAttribute("value_remain", inp_value(request.getParameter("empid"), request.getParameter("name"), request.getParameter("email"), request.getParameter("confirm_mail"), request.getParameter("gender"), request.getParameter("dept"))); if (request.getParameter("name").length() > 32 || request.getParameter("name").length() == 0) { request.setAttribute("imp_name_errmsg", "氏名は 1~32 文字のテキストで入力してください"); } if (request.getParameter("email").equals(request.getParameter("confirm_mail")) == false) { request.setAttribute("imp_email_confirm_errmsg", "確認入力と一致しません"); } RequestDispatcher view = request.getRequestDispatcher("/add.jsp"); view.forward(request, response); } else if (request.getParameter("name").length() > 32) { System.out.println("5"); // 社員名必須と1~32 文字のテキストエラーメッセージ request.setAttribute("imp_name_errmsg", "氏名は 1~32 文字のテキストで入力してください"); request.setAttribute("value_remain", inp_value(request.getParameter("empid"), request.getParameter("name"), request.getParameter("email"), request.getParameter("confirm_mail"), request.getParameter("gender"), request.getParameter("dept"))); if (request.getParameter("email").equals(request.getParameter("confirm_mail")) == false) { request.setAttribute("imp_email_confirm_errmsg", "確認入力と一致しません"); } RequestDispatcher view = request.getRequestDispatcher("/add.jsp"); view.forward(request, response); } else if (request.getParameter("email").equals(request.getParameter("confirm_mail")) == false) { System.out.println("6"); // メールアドレスは確認用フィールド request.setAttribute("imp_email_confirm_errmsg", "確認入力と一致しません"); request.setAttribute("value_remain", inp_value(request.getParameter("empid"), request.getParameter("name"), request.getParameter("email"), request.getParameter("confirm_mail"), request.getParameter("gender"), request.getParameter("dept"))); RequestDispatcher view = request.getRequestDispatcher("/add.jsp"); view.forward(request, response); } else { System.out.println("8"); Employee employee = new Employee(); employee.setEmpID(Integer.parseInt(request.getParameter("empid"))); employee.setName(request.getParameter("name")); employee.setEmail(request.getParameter("email")); employee.setGender(Integer.parseInt(request.getParameter("gender"))); employee.setDept(request.getParameter("dept")); if (emp_input_date.length() == 0) { employee.setEmpdate(null); } else { try { Date empdate = new SimpleDateFormat("yyyy-MM-dd").parse(emp_input_date); System.out.println("入会日"+ empdate); employee.setEmpdate(empdate); } catch (ParseException e){ e.printStackTrace(); RequestDispatcher view = request.getRequestDispatcher("/error_page.jsp"); view.forward(request, response); } } if (dao.addEmployee(employee) == false) { RequestDispatcher view = request.getRequestDispatcher("/error_page.jsp"); view.forward(request, response); } else { RequestDispatcher view = request.getRequestDispatcher("/register_successful.jsp"); request.setAttribute("employees", dao.getAllEmployees()); view.forward(request, response); } } }
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/07/10 23:11