- 在web中前台提交过来的表单数据都是字符串类型的,而在springmvc的处理方法里,使用方法参数接收的参数可以自动转换一些类型。
- 其实在开启springmvc容器时默认为我们开启了一些基本的类型转换器。比如字符串转化为Int、转换成实体等。
- 但是有的时候这些基本的转换并不能满足我们的所有需求,这时候就需要自定义一些类型转换。
使用spring定义好的注解转换
@DateTimeFormat注解
可以将指定格式的字符串转换为Date类型
用法:
1).在xml配置文件中必须配置:<mvc:annotaton-driven/>
2).直接在参数上注解,也可以在实体类的属性中注解
- 在参数上注解
@RequestMapping("/dateTimeFormat.do")
public String dateFormat(@DateTimeFormat(pattern = "yyyy-MM-dd") Date birthday){
System.out.println(dateStr);
return "success";
}
- 会自动将前台传过来的name=”birthday”的数据传换成Date类型,
- 必须要注意的是前台传过来的格式必须要和注解指定的一样才行,否则报错。
- 在实体中注解
public class User {
private String userName;
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date birthday;
...
然后处理方法中直接用这个实体接收参数
spring给我们定义好了一些固定的格式,这里就不详细讲了。
@NumberFormat注解
使用@NumberFormat注解转换Number,使用方法基本同上
@NumberFormat(pattern=”###,###.###”)
这里和上面相同,pattern指定的是接收的数据需要按照这个格式才能进行转换。
比如@NumberFormat(pattern=”###,###.###”)这个就可以将1,000.000转化为1000000 number类型
这个注解定义了一些常用格式,
使用style属性,几个常用值:
— Style.CURRENCY: 货币类型
— Style.NUMBER: 正常数字类型
— Style.PERCENT: 百分比类型
使用PropertyEditor进行数据转换
相关内容可以查看博文 - - PropertyEditor应用
使用Formatter进行数据转换
相关内容可以查看博文 - - Converter的应用
使用Converter进行数据转换
相关内容可以查看博文 - - Formatter的应用