spring mvc 資料繫結 400錯誤
阿新 • • 發佈:2019-01-25
情景:使用在方法中繫結資料的時候,開啟連結,出現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轉換器方式)
- 編寫響應的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的轉換了。