2012-04-25 5 views
0

私は今かなりの時期にこの時間を過ごしました。私は研究のためのリソースを使い果たしました。私のサーブレットでオブジェクトにDATEを設定するには、JSP SERVLET

は、私はこのコードを持っている:

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

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

問題がある:

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

:私が試した何

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; 

を入力してください。また、私は手動で日付を入れるのではなく、現在の日付を自動的に入れてみましたが、まだ動作しません。 Iveはyyyy/mm/dd形式とyyyy-mm-ddを試しましたが、それでも動作しません。

コメントをいただける方には、ありがとうございます!詳細が必要な場合は、投稿してください。シナリオのほとんどのために

+0

の使用例。 DAOクラスでのみこれを使用する必要があります。 – BalusC

答えて

2

あなたは、JSPから来る日がyyyy-mm-dd形式の形ではないことを意味しているdocumentation

java.sql.Date

Throws: IllegalArgumentException - if the date given is not in the JDBC date escape format (yyyy-mm-dd)

からjava.util.Dateなくjava.sql.Date

を必要としています。

java.sql.Dateオブジェクトを使用する場合は、 APIを使用する前に、受信日をyyyy-mm-dd形式にフォーマットします。

SimpleDateFormatを入力すると、入力値をyyyy-mm-ddにフォーマットすることができます。

編集:

さらに良い代わりにあなたが操作のほとんどのCalendarべきDateオブジェクトを使用して。

編集:コメントを1として

: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(); 
    } 
} 
+0

コメントありがとうございます。私はyyyy-mm-ddというフォーマットを作りましたが、それでも同じエラーがあります。 あなたが言及しているカレンダーをチェックします。どうもありがとうございました!あなたがカレンダーのために共有したいコードを持っているなら、それは非常に感謝されます!:) – gwafito

+0

あなたはあなたのJSPから得ている日付は何ですか、あなたは正確な値を与えることができますか? – mprabhat

+0

2012年4月25日ありがとう@mprabhat – gwafito

0

あなたのサーブレットクラスに `java.sql.Date`を使用すべきではない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); 
    } 
} 
関連する問題