スプリングMVCコントローラ(コントローラ)400は、エラーパラメータ日付型を発生し受信します

最近完成した学校の春のMVCは、問題が発生しました。私は、フォームその持っている場合は、データの日付種類(例えば、誕生日など)を使用すると、バックグラウンドのコントローラに送信するとき、発生400errorを、短い言葉で400errorは、背景のリクエストパラメータの型とパラメータの型を受信している罰金ではありません。

私はこれがあるため、おそらくであることを推測する日付型パラメータ問題;以下は、受信日付型パラメータで処理するspringMVC処理の一部をまとめたものです。

 

==== 1の方法

  私たちは、文字列と背景が最初に受信し、その文字列を日付に変換パラメータ。/ **

     *新入社員
     * 
     * @param empVo 
     * @return 戻り、正常識別
      * / 
    @ RequestMapping( "/ empAdd" 
    @ResponseBody // hiredayフォームの受信日時の上に渡され
    、公開ストリングempAdd(EmpVo empVo、文字列のhireday){
 
     //日付の文字列形式は、に変換    てSimpleDateFormat形式
= 新しい新しいてSimpleDateFormat( "MM-DD-YYYY"を); 持つParsePosition POSITION1 = 新しい新しい持つParsePosition(0 ); 日付hiredayDate = format.parse(hireday、ポジション1); // 出産のエントリ日と日付です empVo.setHireDay(hiredayDate); // 。DateHelper.parseString(StringHelper.getBirAgeSex(empVo.getCardno())GET( "誕生日") // 誕生によりIDカードを取得日付 empVo.setBirthday(DateHelper.parseString(StringHelper.getBirAgeSex(empVo.getCardno())GET( "誕生日")、 "MM-DD-YYYY。" )); // 状態 empVo.setStatus(1。); // デフォルトパスワード empVo.setPassword( "123456" ); emp.save(empVo); リターン "成功" ; }

 

====二つの方法

  日付形式エンティティクラスの追加注釈  

@DateTimeFormat(パターン= "YYYY-MM-DD" プライベート日hireDay。// 入职日期

@JsonFormat(パターン = "YYYY-MM-DD"、タイムゾーン= "GMT + 8" 公衆日getHireDay(){
         戻りhireDayと、
    }

 

====方法3(推奨

  結合方法コントローラ日付データを追加します。

//は、Dateクラスに文字列に変換し
    @InitBinder
     公共 のボイドinitBinder(WebDataBinderバインダー、WebRequestクラスリクエスト){の
         // コンバート日付形式 
        はDateFormat DATEFORMAT = 新しい新しいてSimpleDateFormat( ":MM:MM-DD-YYYY HH SSを" );
         // 登録カスタムエディタ 
        binder.registerCustomEditor(日。クラス新しい新しい CustomDateEditor(DATEFORMAT、真の)); 
        
    }

 

====方法4

  日付は、グローバルコンフィギュレーションと型コンバータを実現します

  デザインの日付は、クラスを変換します

パッケージcom.xueqing.demo。
 
輸入java.text.DateFormatの。
輸入java.text.SimpleDateFormatの。
輸入java.util.Date;
輸入org.springframework.beans.propertyeditors.CustomDateEditor;
輸入org.springframework.web.bind.WebDataBinder。
輸入org.springframework.web.bind.support.WebBindingInitializer;
輸入org.springframework.web.context.request.WebRequest; 
 
パブリック クラス DateEdtor 実装WebBindingInitializer {   
     公共 ボイドinitBinder(WebDataBinderバインダー、WebRequestクラスリクエスト){
         //TODO自動生成されたメソッドスタブ
         // 转换日期格式 
        にDateFormat DATEFORMAT = 新しいてSimpleDateFormat( "YYYY-MM-DD HH:MM:SS" );        
        binder.registerCustomEditor(日付。クラス新しい CustomDateEditor(DATEFORMAT、)); 
    } 
}

春MVCプロファイルに設定

<! -配置全局日期转换器- > 
    <豆のクラス = "org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"> 
        <プロパティ名= "webBindingInitializer">     
            <豆のクラス = "nuc.ss.wlb .core.web.DateEdtor "/> 
        </ property>の
    </豆>

  

  

おすすめ

転載: www.cnblogs.com/268lwc/p/12127948.html