我正在使用Spring 3.1和Joda-Time开发一个多语言应用程序。
让我们假设我有一个这样的命令对象:
private class MyCommand {
private LocalDate date;
}
当我使用英国或美国语言环境请求时,它可以正确解析并使用相应的日期格式绑定date
而没有任何问题,例如分别于2013年10月21日和10月21日。
但是如果我有一些像georgian new Locale("ka")
这样的语言环境,它就不会绑定有效日期21.10.2014。所以我需要挂钩Spring格式化程序才能在每个语言环境中提供自己的格式。我有一个bean可以从语言环境中解析日期格式。你能指点我正确的方向我该怎样才能做到这一点?
答案 0 :(得分:2)
您必须实现自己的org.springframework.format.Formatter
实施例
public class DateFormatter implements Formatter<Date> {
public String print(Date property, Locale locale) {
//your code here for display
DateFormat df = DateFormat.getDateInstance(DateFormat.SHORT, LocaleContextHolder.getLocale());
String out = df.format(date);
return out;
}
public Date parse(String source, Locale locale)
// your code here to parse the String
}
}
在你的春季配置中:
<bean id="conversionService" class="org.springframework.format.support.FormattingConversionServiceFactoryBean" >
<property name="formatterRegistrars">
<set>
</set>
</property>
<property name="converters">
<set>
</set>
</property>
<property name="formatters">
<set>
<bean class="com.example.DateFormatter" />
</set>
</property>
</bean>
<mvc:annotation-driven conversion-service="conversionService"/>
希望它可以帮到你!