0

次の問題があります。

私のSpringMVCWebアプリケーションには、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)。出来ますか?助けていただければ幸いです。

4

1 に答える 1

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;
    }

}

そして、それをSpringXML構成に登録します。

<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>
于 2012-08-07T10:03:28.637 に答える