0

私はこの時間をかなり前から持っていて、研究のためのリソースを使い果たしました。

私のサーブレットには、次のコードがあります。

    comment.setDateadded(Date.valueOf(request.getParameter("date")));

コードは基本的にJSPページからデータを取得し、オブジェクトの値の1つとして設定されます。

問題は:

サーブレットが呼び出されて実行されると、次のエラーが返されます。

WARNING: StandardWrapperValve[add_comment]: PWC1406: Servlet.service() for servlet add_comment threw exception
java.lang.IllegalArgumentException
    at java.sql.Date.valueOf(Date.java:117)
    at Controller.Leader.add_comment.processRequest(add_comment.java:50)
    at Controller.Leader.add_comment.doPost(add_comment.java:96)

私が試したこと:問題がもう何であるかわかりません。インポートしました

import java.sql.Date; 

サーブレットまたは動作する行で。また、現在の日付を自動的に入力するのではなく、手動で日付を入力しようとしましたが、それでも機能しません。yyyy / mm / dd形式とyyyy-mm-ddを試しましたが、それでも機能しません。

コメントしてくださる方、ありがとうございました!詳細が必要な場合は、投稿してください。

4

2 に答える 2

2

ほとんどのシナリオでは、必要であり、必要java.util.Dateではありませんjava.sql.Date

ドキュメントからjava.sql.Date

例外: IllegalArgumentException - 指定された日付が JDBC 日付エスケープ形式 (yyyy-mm-dd) でない場合

これは、jsp からの日付が形式ではないことを意味しyyyy-mm-ddます。

java.sql.Date オブジェクトを使用する場合は、APIyyyy-mm-ddを使用する前に受信日付をフォーマットしてください。valueOf

SimpleDateFormat変換のために、受信値を にフォーマットするために使用できますyyyy-mm-dd

編集:

Date オブジェクトを使用する代わりに、ほとんどの操作でCalendarを使用することをお勧めします。

編集:

コメントによると:

JSP からの着信日が dd-MMM-yyyy 形式であると仮定します。

try {
    String date = "25-Apr-2012";
    SimpleDateFormat dateFormat = new SimpleDateFormat("dd-MMM-yyyy");
    java.util.Date parsedDate = dateFormat.parse(date);
    dateFormat = new SimpleDateFormat("yyyy-MM-dd");
    date = dateFormat.format(parsedDate);
    System.out.println(date);
    java.sql.Date sqlDate = java.sql.Date.valueOf(date);
    System.out.println(sqlDate);
    } catch (ParseException e) {
       e.printStackTrace();
    }
}
于 2012-04-25T09:24:24.130 に答える
0

java.sql.Date の使用例

public class A
{
    public static void main(String [] args)
    {
        java.sql.Date jsqlD = java.sql.Date.valueOf( "2010-01-31" );    
        System.out.println(jsqlD);
    }
}
于 2012-04-25T09:26:28.847 に答える