質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Tomcat

TomcatはApache Software Foundation (ASF)で開発されたオープンソースのWebコンテナです。

Q&A

解決済

1回答

3936閲覧

request.getParameterをint型に変更

arin

総合スコア5

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Tomcat

TomcatはApache Software Foundation (ASF)で開発されたオープンソースのWebコンテナです。

0グッド

0クリップ

投稿2021/04/24 07:30

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

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hoshi-takanori

2021/04/24 07:47

年齢の input が name="name" になってるからでは。(old より age の方が良いと思う…。)
arin

2021/04/24 09:04

ありがとうございます! 見落としてました。 そうなんですね。
guest

回答1

0

自己解決

inputのname重複していたため

投稿2021/04/24 11:26

arin

総合スコア5

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問