spring mvc 数据绑定 400错误

来源:互联网 发布:ssh 命令行带端口号 编辑:程序博客网 时间:2024/06/05 07:16

情景:使用在方法中绑定数据的时候,打开链接,出现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的转换了。

0 0