1.自定义类型转换器
前台表单提交的数据都是字符串形式的,spring会将接收到的字符串自动转换为controller参数对应的类型。我们也可以自定义类型转换器,将字符串转换为对应的类型。
实现了Converter接口的类都是类型转换器:
import org.springframework.core.convert.converter.Converter;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
//字符串转换为日期类型
public class StringToDateConverter implements Converter<String, Date> {
public Date convert(String s) {
if (s == null) {
throw new RuntimeException("缺少参数");
}
DateFormat df = new SimpleDateFormat("yyyy-mm-dd");
try {
return df.parse(s);
} catch (ParseException e) {
throw new RuntimeException("数据转换错误");
}
}
}
需要在spring配置文件中添加类型转换器的配置:
<!-- 配置自定义类型转换器-->
<bean id="conversionService" class="org.springframework.context.support.ConversionServiceFactoryBean">
<property name="converters">
<set>
<bean class="com.hz.StringToDateConverter"/> 转换器类的全路径
</set>
</property>
</bean>
在开启注解的地方加入:
<mvc:annotation-driven conversion-service="conversionService"/>
2.获取servlet原生API
在controller方法的参数中加要获取的API即可
//获取requestAPI
@RequestMapping("/hello")
public void hello(HttpRequest request) {
System.out.println(request);
}