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

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

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

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Java

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

Q&A

解決済

1回答

930閲覧

データベースにdate型を入れたい

Alfiie02

総合スコア5

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Java

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

0グッド

0クリップ

投稿2021/05/31 01:32

編集2021/05/31 02:09

情報入力フォームから受け取った値をOrderオブジェクトに保存し、入力された情報の確認画面を出すJSPです。

java

1<%@ page language="java" contentType="text/html; charset=UTF-8" 2 pageEncoding="UTF-8"%> 3 <%@ page import="java.util.ArrayList, model.beans.*, java.sql.Date,java.text.SimpleDateFormat"%> 4 <% 5 request.setCharacterEncoding("UTF-8"); 6 7 String deliveryDate = request.getParameter("deliveryDate"); 8 String deliveryMinute = request.getParameter("deliveryMinute"); 9 String recieverName = request.getParameter("recieverName"); 10 String recieverKana = request.getParameter("recieverKana"); 11 String recieverZip = request.getParameter("recieverZip1" + " - " + "recieverZip2"); 12 String recieverAddress = request.getParameter("recieverAddress1" + " / " + "recieverAddress2"); 13 String recieverTel = request.getParameter("recieverTel1" + " - " + "recieverTel2" + " - " + "recieverTel3"); 14 String senderName = request.getParameter("senderName"); 15 String senderKana = request.getParameter("senderKana"); 16 String senderZip = request.getParameter("senderZip1" + " - " + "senderZip2"); 17 String senderAddress = request.getParameter("senderAddress1" + "senderAddress2"); 18 String senderTel = request.getParameter("senderTel1" + " - " + "senderTel2" + " - " + "senderTel3"); 19 String senderEmail = request.getParameter("senderEmail"); 20 Order order = null; 21 if(deliveryDate != null){ 22 Date sqlDate= Date.valueOf(deliveryDate); 23 //SQLでエラーになるので、d1(deliveryDate)を省いたコンストラクタを使用 24 order = new Order(sqlDate,deliveryMinute, recieverName, recieverKana, recieverZip, recieverAddress, recieverTel, senderName, senderKana, senderZip, senderAddress, senderTel, senderEmail); 25 session.setAttribute("order", order); 26 } 27 %>

この際、sqlのDate型に変換しようとすると
java.lang.IllegalArgumentExceptionのエラーが出ました。

恐らくdeliveryDateをいれようとするとエラーになるようです。

jsp

1<td>お届け日<input type="text" name="deliveryDate" id="input"></td> 2<script> 3$(function() { 4$.datepicker.setDefaults($.datepicker.regional["ja"]); 5$('#date').datepicker({ dateFormat: 'yy-mm-dd' }); 6$("#input").datepicker({ 7minDate: '-1w', //本日の1週間前から 8maxDate: '+1m +10d' //本日の1か月と10日後まで 9}); 10}); 11</script>
重大: Servlet.service() for servlet [jsp] in context with path [/FlowerSystem] threw exception [An exception occurred processing JSP page /orderConfirm.jsp at line 22 Order order = null; if(deliveryDate != null){ Date sqlDate= Date.valueOf(deliveryDate); order = new Order(sqlDate,deliveryMinute, recieverName, recieverKana, recieverZip, recieverAddress, recieverTel, senderName, senderKana, senderZip, senderAddress, senderTel, senderEmail); session.setAttribute(""order"", order); } Stacktrace:] with root cause [月 5 31 10:07:22 JST 2021]

いろいろ試しましたが解決しません。
引数が不定とありますが、どこを見れば良いでしょうか。

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

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

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

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

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

m.ts10806

2021/05/31 01:34

deliveryDate  にはどういう値が入ってきてるのでしょう。
Alfiie02

2021/05/31 02:06

閲覧ありがとうございます。 textボックスでjavascriputを使いカレンダー風にしています。 <td>お届け日<input type="text" name="deliveryDate" id="input"></td> <script> $(function() { $.datepicker.setDefaults($.datepicker.regional["ja"]); $('#date').datepicker({ dateFormat: 'yy-mm-dd' }); $("#input").datepicker({ minDate: '-1w', //本日の1週間前から maxDate: '+1m +10d' //本日の1か月と10日後まで }); }); </script>
m.ts10806

2021/05/31 02:10

いえあの、サーバーサイドに渡ってきている実値をデバッグで確認してください。
guest

回答1

0

ベストアンサー

$('#date').datepicker({ dateFormat: 'yy-mm-dd' });

$("#input").datepicker({
minDate: '-1w', //本日の1週間前から
maxDate: '+1m +10d' //本日の1か月と10日後まで
});

これだと肝心の#inputにフォーマットは適用されないですし、適用されたとしても年が二桁なので変換できないのでは。
入力時はともかく送信時にはJavaScript等でyyyy-mm-dd形式に変換した文字列とする必要があります。

投稿2021/05/31 02:14

m.ts10806

総合スコア80875

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

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

m.ts10806

2021/05/31 02:21

手元で確認。 年二桁だと本件と同じ例外をスローしますね。 -が/の場合も同。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問