1. 程式人生 > >springmvc之引數繫結(一)

springmvc之引數繫結(一)

引數繫結過程之基礎篇

客戶端請求的key/value資料經過引數繫結繫結到controller方法的形參上。
spring提供很多converter(轉換器),特殊情況下需要自定義converter

預設支援的型別
request response session model/modelMap 簡單型別 pojo

簡單型別引數繫結
使用 @RequestParam

public ModelAndView findProInfo(@RequestParam(value="id",required=true) Integer idValue) throws Exception{}

將id的值傳給形參idValue; required=true 表示id必須傳入 , defaultValue=? 表示設定預設值

pojo繫結
post亂碼/get亂碼 –> 自行百度
request提交的屬性名稱與pojo的屬性名稱一致
ps:不影響形參中的普通資料型別繫結
自定義引數繫結
如:形式引數pojo屬性中如果有日期型別,請求日期資料串轉換成日期型別,需要向處理器介面卡中注入自定義的引數繫結元件
程式碼:
springmvc.xml配置

<mvc:annotation-driven conversion-service
="conversionService">
</mvc:annotation-driven> <!-- 自定義引數繫結 --> <bean id="conversionService" class="org.springframework.format.support.FormattingConversionServiceFactoryBean"> <property name="converters"> <list> <bean
class="cn.xiuli.converter.DateConverter" />
</list> </property> </bean>

converter:

/**
 * key:要轉換的
 * value:轉換後的
 * @author xu
 *
 */
public class DateConverter implements Converter<String, Date> {

    @Override
    public Date convert(String source) {
        //將日期串轉換成日期型別
        SimpleDateFormat simFormat = 
                new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        try {
            return simFormat.parse(source);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return null;
    }
}