1. 程式人生 > >springMvc--接受日期型別引數處理

springMvc--接受日期型別引數處理

這個問題,也即是springMvc如何進行引數型別的轉換 , 以把client傳過來一個String型別,轉換為日期型別為例

回到頂部

步驟

1.controller

複製程式碼
/**
     * 接收日期型別引數
     *     注意:
     *         springmvc 在接收日期型別引數時,如不做特殊處理 會出現400語法格式錯誤
     *  解決辦法
     *      1.全域性日期處理
     * 
     */
    
    @RequestMapping("/test")
    public String test(Date birthday){
        System.out.println(birthday);
        
return "index"; }
複製程式碼

2.自定義型別轉換規則

SpringMvc提供了Converter介面,它支援從一個Object轉換為另一個Object

複製程式碼
/**
 * 全域性日期處理類
 * Convert<T,S>
 *         泛型T:代表客戶端提交的引數 String
 *         泛型S:通過convert轉換的型別
   
 */
public class DateConvert implements Converter<String, Date> {

    @Override
    public Date convert(String stringDate) {
        SimpleDateFormat simpleDateFormat 
= new SimpleDateFormat("yyyy-MM-dd"); try { return simpleDateFormat.parse(stringDate); } catch (ParseException e) { e.printStackTrace(); } return null; } }
複製程式碼

3.註冊自定義的型別轉換類

複製程式碼
  <!-- 第三步:註冊處理器對映器/處理器介面卡 ,新增conversion-service屬性-->
    <mvc:annotation-driven 
conversion-service="conversionService"/> <!-- 第二步: 建立convertion-Service ,並注入dateConvert--> <bean id="conversionService" class="org.springframework.format.support.FormattingConversionServiceFactoryBean"> <property name="converters"> <set> <ref bean="dateConvert"/> </set> </property> </bean> <!-- 第一步: 建立自定義日期轉換規則 --> <bean id="dateConvert" class="zpark.convert.DateConvert"/>
複製程式碼

4.位址列訪問

http://localhost:9999/date/test2?birthday=1990-01-02

參考:http://blog.csdn.net/renhui999/article/details/9837897

ps:測試了很久才成功,失敗的次數太多就不記錄下來了,以上只是記錄了測試正確的步驟