我有以下问题。
在我的Spring MVC Web应用程序中,有一些具有Calendar属性的命令对象类。
public class TestBean {
private Calendar startDate;
//other properties
//setters and getters
}
在我的JSP页面中,我的表格如下:
<form:form method="post" commandName="testBean">
<form:input path="startDate" cssClass="forminput" />
</form:form>
但是我想在上面的表单输入中添加年份(“yyyy”)并将其映射到上面提到的Calendar属性(它可以是dafault日期,但是在输入中指定年份,例如:01-01-2012) 。可能吗? 我将不胜感激任何帮助。
答案 0 :(得分:0)
我建议你在这里实现自己的Spring转换器:
final class StringToCalendar implements Converter<String, Calendar> {
public Calendar convert(String source) {
Calendar calendar = Calendar.getInstance();
// Setting 01-01-yyyy date
calendar.set(Calendar.DAY_OF_MONTH, 1);
calendar.set(Calendar.MONTH, 1);
calendar.set(Calendar.YEAR, Integer.parseInt(source)); // This could throw an unchecked exception!
return calendar;
}
}
并在Spring XML配置中注册:
<mvc:annotation-driven conversion-service="conversionService"/>
<bean id="conversionService"
class="org.springframework.format.support.FormattingConversionServiceFactoryBean">
<property name="converters">
<list>
<bean class="your.package.StringToCalendar "/>
</list>
</property>
</bean>