1. 程式人生 > >使用springmvc從頁面中獲取資料,然後根據獲得的引數資訊進行修改,如果修改的資料中含有不是基本資料型別的引數。比如傳的引數中有Date型別的資料時,需要我們進行引數型別轉換。

使用springmvc從頁面中獲取資料,然後根據獲得的引數資訊進行修改,如果修改的資料中含有不是基本資料型別的引數。比如傳的引數中有Date型別的資料時,需要我們進行引數型別轉換。

1.1 需求

  在商品修改頁面可以修改商品的生產日期,並且根據業務需求自定義日期格式。

1.2 需求分析

  由於日期資料有很多格式,所以springmvc沒辦法把字串轉換成日期型別。所以需要自定義引數繫結。前端控制器接收到請求後,找到註解形式的處理器介面卡,對RequestMapping標記的方法進行適配,並對方法中的形參進行引數繫結。在springmvc這可以在處理器介面卡上自定義Converter進行引數繫結。如果使用<mvc:annotation-driven/>可以在此標籤上進行擴充套件。

1.3 自定義Converter

package com.huida.controller.convert;

import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import org.springframework.core.convert.converter.Converter; //全域性的轉換器 public class CustomGlobalStrToDateConverter implements Converter<String, Date>{ //將頁面傳過來的字串轉換為Date型別 @Override public Date convert(String str) { Date date
=null; //定義日期的格式器 try { date=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").parse(str); } catch (ParseException e) { // TODO Auto-generated catch block e.printStackTrace(); } return date; } }

1.4 配置Converter

   因為轉換器是控制層要進行的操作,所以我們需要將配置配置到SpringMvc.xml中。

    <!-- 轉換器配置 
        注意:一定要將自定義的轉換器配置到註解驅動上
    -->
    <bean id="conversionService"
        class="org.springframework.format.support.FormattingConversionServiceFactoryBean">
        <property name="converters">
            <set>
                <bean class="com.huida.controller.convert.CustomGlobalStrToDateConverter"/>
            </set>
        </property>
    </bean>

  注意:一定要將自定義的轉換器配置到註解驅動上。

<mvc:annotation-driven conversion-service="conversionService"/>