request.getParameterをint型に変更
Javaで新規会員登録を制作しているのですが、Integer.parseIntでint変更時エラーが出ています。
入力画面からPOST送信でフィールド値をセットしたいです。
発生している問題・エラーメッセージ
java.lang.NumberFormatException: null java.base/java.lang.Integer.parseInt(Integer.java:614) java.base/java.lang.Integer.parseInt(Integer.java:770) controller.InsertController.doPost(InsertController.java:26) javax.servlet.http.HttpServlet.service(HttpServlet.java:652) javax.servlet.http.HttpServlet.service(HttpServlet.java:733) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
入力画面
<%@ page contentType="text/html; charset=UTF-8" %> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>マイページ</title> <link href="style.css" rel="stylesheet" type="text/css"> </head> <body> <div id="main"> <h1>入力画面</h1> <form action="insert" method="post"> <label for="email">Email</label> <input type="text" id="email=" name="email" value ="${customer.email}"> <label for="password">Passowrd</label> <input type="text" id="password" name="password" value ="${customer.password}"> <label for="name">氏名</label> <input type="text" id="name=" name="name" value="${customer.name}"> <label for="gender">性別</label> <c:if test="${customer.gender == 0}"> <input type="radio" name="gender" value="0" checked=checked>男 <input type="radio" name="gender" value="1">女 </c:if> <c:if test="${customer.gender == 1}"> <input type="radio" name="gender" value="0">男 <input type="radio" name="gender" value="1" checked=checked>女 </c:if> <label for="blood">血液型</label> <select name="blood"> <option value="${customer.blood}">${customer.blood}型</option> <option value="A">A型</option> <option value="B">B型</option> <option value="O">O型</option> <option value="AB">AB型</option> </select> <label for="name">年齢</label> <input type="text" id="nane" name="name" value ="${customer.name}"> <label for="memo">メモ</label> <textarea name="memo" rows="4" cols="41" maxlength="100">${customer.memo}</textarea> <input type="submit" value="確認"> </form> </div> </body> </html>
POST送信した値をフィールド値セットするコード
package controller; import java.io.IOException; import javax.servlet.ServletContext; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import data.Customer; @WebServlet("/insert") public class InsertController extends HttpServlet { protected void doPost (HttpServletRequest request, HttpServletResponse response) throws ServletException,IOException{ request.setCharacterEncoding("UTF-8"); String email = request.getParameter("email"); String password = request.getParameter("password"); String name = request.getParameter("name"); String blood = request.getParameter("blood"); String gender = request.getParameter("gender"); int old =Integer.parseInt(request.getParameter("old")); String memo= request.getParameter("memo"); Customer customer = new Customer(); customer.setEmail(email); customer.setPassword(password); customer.setName(name); customer.setGender(gender); customer.setBlood(blood); customer.setOld(old); customer.setMemo(memo); request.setAttribute("customer", customer); ServletContext sc = getServletContext(); sc.getRequestDispatcher("/" + "confirm.jsp").forward(request, response); } }
補足情報(FW/ツールのバージョンなど)
Java
tomcat
回答1件
あなたの回答
tips
プレビュー