Integer.parseIntの使い方はストリングで受け取った値も数値にするものだと認識していたので下記のようなソースを打ったのですが、エラーが出ます。私の認識が間違っていたのでしょうか?
又、パラメータを送信するときに数値で送信することができれば教えていただきたいです。
どなたかご教授お願いいたします。
パラメータ送信 <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> 登録画面 <form action = "Regist" method = "post" enctype = "multipart/form-data" > Title<br> <input type ="text" name = "title"><br> Picture<br> <input type ="file" name="picture" size="30" /><br> <br> <!-- like.hate初期値は0 --> <input type ="hidden" name = "like" value = "0"> <input type = "hidden" name = "hate" value = "0"> <input type = "submit" value = "Regist!"> </form> </body> </html>
パラメータ受信 /** * Servlet implementation class Regist */ @WebServlet("/Regist") public class Regist extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { RequestDispatcher dispatcher = request.getRequestDispatcher("WEB-INF/jsp/regist.jsp"); dispatcher.forward(request, response); } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("utf-8"); response.setCharacterEncoding("utf-8"); //getTitle String title = request.getParameter("title"); //getPicture String picture = request.getParameter("picture"); //initialValue String like = request.getParameter("like"); String hate = request.getParameter("hate"); //setValue VoteBean vb = new VoteBean(); vb.setTitle(title); vb.setPicture(picture); vb.setLike(Integer.parseInt(like)); vb.setHate(Integer.parseInt(hate)); VoteDAO vd = new VoteDAO(); int line = 0; try { vd.regist(vb); if(line > 0){ RequestDispatcher dispatcher = request.getRequestDispatcher("WEB-INF/jsp/registFinish.jsp"); dispatcher.forward(request, response); }else{ RequestDispatcher dispatcher = request.getRequestDispatcher("WEB-INF/jsp/registError.jsp"); dispatcher.forward(request, response); } } catch (Exception e) { e.printStackTrace(); RequestDispatcher dispatcher = request.getRequestDispatcher("WEB-INF/jsp/registError.jsp"); dispatcher.forward(request, response); } } }
エラー java.lang.NumberFormatException: null java.lang.Integer.parseInt(Integer.java:542) java.lang.Integer.parseInt(Integer.java:615) vote.Regist.doPost(Regist.java:47) javax.servlet.http.HttpServlet.service(HttpServlet.java:648) javax.servlet.http.HttpServlet.service(HttpServlet.java:729) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
回答2件
あなたの回答
tips
プレビュー