1. 程式人生 > >spring mvc 資料繫結 400錯誤

spring mvc 資料繫結 400錯誤

情景:使用在方法中繫結資料的時候,開啟連結,出現400錯誤。

@RequestMapping(value = "editItemSubmit")
    public String editItemSubmit(int id, Items item) {
        itemService.updateItemFromId(id, item);
        return "redirect:queryItemlList";
    }
public class Items {

    private int id;
    private String name;
    private
float price; private String pic; private Date createtime; private String detail;

注意看:我的bean裡面是有Date這個型別,但是spring mvc 並不能把前段的string型別轉換成整理的Date型別,所以出現了這個錯誤。

解決辦法:使用自定義引數繫結(converter轉換器方式)

  1. 編寫響應的converter,實現固定介面:
第一個引數是原始型別,第二個引數是轉換後的型別
public class CustomDateConverter implements Converter
<String, Date> {
@Override public Date convert(String s) { try { return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(s); } catch (ParseException e) { e.printStackTrace(); } return null; } }

在springmvc.xml配置檔案配置格式化轉換服務工廠bean:FormattingConversionServiceFactoryBean

<bean id="conversionService" class="org.springframework.format.support.FormattingConversionServiceFactoryBean">
        <property name="converters">
            <list>
                <bean class="xyz.zhulei.spring_mybatis.controller.convert.CustomDateConverter"/>
            </list>
        </property>
    </bean>

然後加上:

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

大功告成,就可以自動完成string到date的轉換了。