SpringMVC的自定义类型转换器
时间: 2023-06-26 18:04:54 浏览: 119
SpringMVC中午+自定义转换器-2021-04-10.txt
在SpringMVC中,我们可以通过自定义类型转换器来实现将请求参数转换为Controller方法中的参数类型。自定义类型转换器需要实现`org.springframework.core.convert.converter.Converter`接口,具体步骤如下:
1. 创建一个类,实现`Converter<S, T>`接口,其中S为源类型,T为目标类型。
2. 在类上使用`@Component`注解将其注册为Spring组件。
3. 在SpringMVC的配置文件中添加`<mvc:annotation-driven>`标签,并注册自定义类型转换器。
以下是一个将字符串转换为日期类型的自定义类型转换器的示例:
```java
@Component
public class StringToDateConverter implements Converter<String, Date> {
private static final String DATE_FORMAT = "yyyy-MM-dd";
@Override
public Date convert(String source) {
SimpleDateFormat dateFormat = new SimpleDateFormat(DATE_FORMAT);
try {
return dateFormat.parse(source);
} catch (ParseException e) {
throw new IllegalArgumentException("Invalid date format, please use yyyy-MM-dd");
}
}
}
```
在SpringMVC配置文件中添加以下代码:
```xml
<mvc:annotation-driven>
<mvc:converters>
<bean class="com.example.StringToDateConverter"/>
</mvc:converters>
</mvc:annotation-driven>
```
这样,在Controller方法中,就可以直接使用`Date`类型的参数来接收请求参数了。例如:
```java
@RequestMapping("/test")
public String test(Date date) {
System.out.println(date);
return "success";
}
```
阅读全文