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

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

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

Nullとは、プログラミング言語やデータベースにおけるデータ表現の一種です。コンテキストによって"空"もしくは"長さ0の文字列"、”未知・不明”を意味します。

Java

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

Struts

StrutsはJava向けのWebアプリケーションフレームです。MVCモデルに基づいており、JSPやJavaサーブレットを組み合わせ、アプリケーション構築時に使用する各機能を提供しています。

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

Tomcat

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

Q&A

解決済

1回答

9443閲覧

NumberFormatException: null が解決できません。

Y.Mamoru

総合スコア47

Null

Nullとは、プログラミング言語やデータベースにおけるデータ表現の一種です。コンテキストによって"空"もしくは"長さ0の文字列"、”未知・不明”を意味します。

Java

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

Struts

StrutsはJava向けのWebアプリケーションフレームです。MVCモデルに基づいており、JSPやJavaサーブレットを組み合わせ、アプリケーション構築時に使用する各機能を提供しています。

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

Tomcat

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

0グッド

0クリップ

投稿2020/09/30 01:34

編集2020/09/30 01:36

〇やりたいこと
strutsを使って入力されたデータの受け渡しを行いたい

〇起こっている問題
入力されているはずのデータが一部nullで返る

〇今考えている仕組み
Update.jspで値の入力が行われる

<html:form action = "/update">によってstrtus-configのpath = "/update"につながる

上記接続でtype="actioncontroller.UpdateAction"クラスにつながる
このときAcitonフォームUserActionFormを通って、入力データのSetGetが行われる

UpdateActionクラスで、データを受け取る(←ここの時点で問題一部がnullになっています。)

〇自分で考えてみたこと
入力されたデータのうちnullになるのは、『郵便番号』と『電話番号』です。どちらも数字で表示されるものなので、そのあたりが原因に近いのでは?と考えているのですが、
入力の段階でどの値もhtml:textで揃えており、他の値は正常に受け渡しができているので具体的に原因はまだわかっていません。
なぜこのようなことが起こるのかアドバイスを頂きたいです。

Updatejsp

1<%@ page contentType="text/html;"pageEncoding="UTF-8"%> 2<%@ page import="java.util.List,model.DataBase"%> 3<%@ taglib uri = "http://struts.apache.org/tags-html" prefix = "html" %> 4<!DOCTYPE html> 5<html> 6<head> 7<meta charset="UTF-8"> 8<title>Insert title here</title> 9<link rel="stylesheet" href="CSS/Struts.css"> 10</head> 11<body> 12 <h1>アンケートフォーム</h1> 13 <p>以下のアンケートを変更してください</p> 14 <% 15 List<DataBase> list = (List<DataBase>)request.getAttribute("list"); 16 for(int i=0 ; i<list.size() ; i++){ 17 DataBase db = (DataBase)list.get(i); 18 %> 19 <html:form action="/update"> 20 <TABLE class="table"> 21 <TR class="th1"> 22 <TH name="left-table">質問</TH> 23 <TH>回答</TH> 24 </TR> 25 <TR> 26 <TD>住所</TD> 27 <TD> 28 <p>郵便番号:<html:text property = "postnum" value = ""/></p><br> //これがnullになる 29 <p>住所:<html:text property = "address" value = ""/></p> 30 </TD> 31 </TR> 32 <TR name="birth"> 33 <TD name="left_table">生年月日</TD> 34 <TD> 35 <p><html:text property = "year" value = ""/>年 //生年月日は数字で表すが表示されている 36 <html:text property = "month" value = ""/>月 37 <html:text property = "day" value = ""/>日</p> 38 </TD> 39 </TR> 40 <TR> 41 <TD name="left_table">電話番号</TD> 42 <TD id="phone_num"> 43 <p><html:text property = "phonenum1" value = ""/> - //電話番号は3つともnullになる 44 <html:text property = "phonenum2" value = ""/> - 45 <html:text property = "phonenum3" value = ""/></p> 46 </TD> 47 </TR> 48 <TR> 49 <TD name="left-table">ご意見・ご感想</TD> 50 <TD> 51 <html:text property = "opinion" value = ""/> 52 </TD> 53 </TR> 54 </TABLE> 55 <html:hidden property = "hiddenNo" value="<%= db.getNo() %>"/> 56 <html:submit property = "submit" value="更新"/> 57 </html:form> 58 <% } %> 59</body> 60</html>

strutsconfig

1<?xml version = "1.0" encoding = "ISO-8859-1"?> 2<!DOCTYPE struts-config PUBLIC 3 "-//Apache Software Foundation .. DTD Struts Configuration 1.1//EN" 4 "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd"> 5 6<struts-config> 7 8 <form-beans> 9 <form-bean 10 name = "UserActionForm" 11 type = "model.UserActionForm"/> 12 </form-beans> 13 14 <action-mappings> 15 16 <action 17 path = "/update" //ここで接続はできている 18 type = "actioncontroller.UpdateAction" //Actionクラス 19 name = "UserActionForm" //ActionForm 20 scope = "session"> 21 <forward name = "update" path = "/jsp/update_result.jsp"/> 22 <forward name = "error" path = "/jsp/result.jsp"/> 23 </action> 24 25 </action-mappings> 26 27</struts-config> 28 29

ActionForm

1package model; 2 3import org.apache.struts.action.ActionForm; 4 5public class UserActionForm extends ActionForm { 6 private String no; //検索用のno 7 private String name; //検索用のname 8 9 private String hiddenNo; //変更・消去時のNo 10 11 private String postnum; //新規・変更用の変数 12 private String address; 13 private String year; 14 private String month; 15 private String day; 16 private String phonenum1; 17 private String phonenum2; 18 private String phonenum3; 19 private String blood; 20 private String opinion; 21 22 23 24 public String getNo() { 25 return no; 26 } 27 public void setNo(String no) { 28 this.no = no; 29 } 30 31 public String getName() { 32 return name; 33 } 34 public void setName(String name) { 35 this.name = name; 36 } 37 38 public String getHiddenNo() { 39 return hiddenNo; 40 } 41 public void setHiddenNo(String hiddenNo) { 42 this.hiddenNo = hiddenNo; 43 } 44 45 public String getPost() { 46 return postnum; 47 } 48 public void setPost(String postnum) { 49 this.postnum = postnum; 50 } 51 52 public String getAddress() { 53 return address; 54 } 55 public void setAddress(String address) { 56 this.address = address; 57 } 58 59 public String getYear() { 60 return year; 61 } 62 public void setYear(String year) { 63 this.year = year; 64 } 65 66 public String getMonth() { 67 return month; 68 } 69 public void setMonth(String month) { 70 this.month = month; 71 } 72 73 public String getDay() { 74 return day; 75 } 76 public void setDay(String day) { 77 this.day = day; 78 } 79 80 public String getPhone1() { 81 return phonenum1; 82 } 83 public void setPhone1(String phonenum1) { 84 this.phonenum1 = phonenum1; 85 } 86 87 public String getPhone2() { 88 return phonenum2; 89 } 90 public void setPhone2(String phonenum2) { 91 this.phonenum2 = phonenum2; 92 } 93 94 public String getPhone3() { 95 return phonenum3; 96 } 97 public void setPhone3(String phonenum3) { 98 this.phonenum3 = phonenum3; 99 } 100 101 public String getBlood() { 102 return blood; 103 } 104 public void setBlood(String blood) { 105 this.blood = blood; 106 } 107 108 public String getOpinion() { 109 return opinion; 110 } 111 public void setOpinion(String opinion) { 112 this.opinion = opinion; 113 } 114} 115

UpdateActionjava

1package actioncontroller; 2 3import java.sql.Connection; 4import java.sql.PreparedStatement; 5import java.sql.SQLException; 6import java.sql.Timestamp; 7import java.text.SimpleDateFormat; 8 9import javax.servlet.http.HttpServletRequest; 10import javax.servlet.http.HttpServletResponse; 11 12import org.apache.struts.action.Action; 13import org.apache.struts.action.ActionForm; 14import org.apache.struts.action.ActionForward; 15import org.apache.struts.action.ActionMapping; 16 17import controller.DBManager; 18import model.UserActionForm; 19 20//更新アクション 21public class UpdateAction extends Action { 22 public ActionForward execute 23 (ActionMapping mapping , 24 ActionForm form , 25 HttpServletRequest request , 26 HttpServletResponse response) 27 throws Exception{ 28 //以下処理内容 29 30 //データ受け取り 31 UserActionForm uaf = (UserActionForm)form; 32 String postnum = uaf.getPost();//nullになる 33 String address = uaf.getAddress(); 34 String name = uaf.getName(); 35 String year = uaf.getYear(); 36 String month = uaf.getMonth(); 37 String day = uaf.getDay(); 38 String phone1 = uaf.getPhone1();//nullになる 39 String phone2 = uaf.getPhone2();//nullになる 40 String phone3 = uaf.getPhone3();//nullになる 41 String blood = uaf.getBlood(); 42 String opinion = uaf.getOpinion(); 43 String no = uaf.getHiddenNo(); 44 45 //タイムスタンプ作成 46 Timestamp timestamp = new Timestamp(System.currentTimeMillis()); 47 SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd"); 48 String time = sdf.format(timestamp); 49 50 //SQL文 51 String sql = "UPDATE INFORMATION " 52 + "SET POSTNUM = ? , ADDRESS = ? , BIRTHYEAR = ? , " 53 + "BIRTHMONTH = ? , BIRTHDAY = ? , PHONE1 = ? , " 54 + "PHONE2 = ? , PHONE3 = ? , BLOOD = ? , OPINION = ? , " 55 + "NAME = ? , TIME = ?" 56 + "WHERE NO = ? "; 57 final Connection conn = DBManager.getConnection(); 58 PreparedStatement smt = conn.prepareStatement(sql); 59 60 61 //バインド 62 smt.setInt(1 , Integer.parseInt(postnum)); 63 smt.setString(2 , address); 64 smt.setInt(3 , Integer.parseInt(year)); 65 smt.setInt(4 , Integer.parseInt(month)); 66 smt.setInt(5 , Integer.parseInt(day)); 67 smt.setInt(6 , Integer.parseInt(phone1)); 68 smt.setInt(7 , Integer.parseInt(phone2)); 69 smt.setInt(8 , Integer.parseInt(phone3)); 70 smt.setInt(9 , Integer.parseInt(blood)); 71 smt.setString(10 , opinion); 72 smt.setString(11 , name); 73 smt.setString(12 , time); 74 smt.setString(13 , no); 75 76 77 78 79 } 80} 81

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

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

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

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

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

guest

回答1

0

ベストアンサー

プロパティの名前と、セッターの名前を合わせてください。

postnum → setPost setPostnum

phonenum1 → setPhone1 setPhonenum1

投稿2020/09/30 01:59

momon-ga

総合スコア4820

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

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

Y.Mamoru

2020/09/30 02:16

ありがとうございます! プロパティとセッターのつながりを理解できていませんでした。 勉強になりました。ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問