为什么会在类型转换中发生?

时间:2013-07-29 00:20:09

标签: java spring-mvc

我是springMVC的新手,今天我写了一个DateConverter 像这样

public class DateConverter implements Converter<String,Date>{

    private String formatStr = "";

    public DateConverter(String fomatStr) {
        this.formatStr = formatStr;
    }

    public Date convert(String source) {
        SimpleDateFormat sdf = null;
        Date date = null;
        try {
            sdf = new SimpleDateFormat(formatStr);
            date = sdf.parse(source);
        } catch (ParseException e) {
                e.printStackTrace();
            }
        return date;

    }
}

然后我写了一个像这样的控制器

@RequestMapping(value="/converterTest") 
public void testConverter(Date date){
    System.out.println(date);
}

将其配置为applicationContext,我确信DateConverter已经正确初始化,当我用

测试我的转换器时
http://localhost:8080/petStore/converterTest?date=2011-02-22

the browser says:
HTTP Status 400 -
type Status report
message
description The request sent by the client was syntactically incorrect ().
有人可以帮我吗?提前谢谢

1 个答案:

答案 0 :(得分:1)

您的转换器中有拼写错误。你拼错了构造函数参数,所以赋值没有效果。而不是:

public DateConverter(String fomatStr) {
    this.formatStr = formatStr;
}

尝试:

public DateConverter(String formatStr) {
    this.formatStr = formatStr;
}

可能还有其他问题,但至少你会想要解决这个问题。我假设您使用yyyy-MM-dd作为日期格式?