文章目錄
(一)產品操作:添加產品流程描述
(二)產品操作:產品添加操作1
(三)產品操作:產品添加操作2(類型轉換)
(四)產品操作:產品添加操作3(類型轉換)
(一)產品操作:添加產品流程描述
(二)產品操作:產品添加操作1
修改product-list.jsp,如下:
把資料包提供的product-add.jsp拷貝過來,如下:
當我們點擊提交時,就會訪問/product/save.do
接口,如下:
首先編寫controller,如下:
編寫service接口,如下
編寫service實現類,如下:
編寫dao接口,如下:
效果如下:
報錯信息如下:
分析:其實departureTime和productStatus都會存在類型轉換的問題,但是客戶端處理了productStatus的類型轉換問題,如下圖:
而departureTime則沒有處理,客戶端傳來的是String類型,而服務器需要的是Date類型
對於引用數據類型,springmvc是無法幫我們自動轉換的,springmvc只能自動轉換基本數據類型,因此我們需要手動進行類型轉換
(三)產品操作:產品添加操作2(類型轉換)
SpringMVC綁定參數之類型轉換有三種方式
-
類型轉換器Converter(之前介紹過,這裏不再介紹了)
進行全局類型轉換,詳情見:SpringMVC之參數綁定及自定義類型轉換(二) -
屬性編輯器(在擴展視頻裏面,待會兒介紹)
-
實體類中加日期格式化註解(這一次用這種方法,畢竟簡單)
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm") private Date creationTime;
效果如下:
(四)產品操作:產品添加操作3(類型轉換)
這次使用屬性編輯器來做類型轉換
我們先新建一個工具類,如下:
package com.zzq.ssm.utils;
import org.springframework.beans.propertyeditors.PropertiesEditor;
import java.text.ParseException;
import java.util.Date;
public class DateStringEditor extends PropertiesEditor {
@Override
public void setAsText(String text) throws IllegalArgumentException {
try {
Date date = DateUtils.string2Date(text, "yyyy-MM-dd HH:mm");
super.setValue(date);
} catch (ParseException e) {
e.printStackTrace();
}
}
}
我們需要在要使用類型轉換的controller中加入一個方法,如下:
效果跟剛纔一樣,這裏不再演示了