3

最近、自分の Web サイトを Spring 3 に移植し始めました。私のモデルには、Calendar クラスのオブジェクトを含むいくつかの情報を格納する Author オブジェクトがあります。

日付の解析をなくすために、カレンダーを設定するために 3 つのドロップダウン ボックスを使用します。Spring 2.5 では、onBind メソッドで翻訳を行いました。

@Override
protected void onBind(HttpServletRequest request, Object command) throws Exception {
    Auteur auteur = (Auteur) command;
    Calendar geboorteDatum = getCompositeDate(request, "geboortedatum.time.date", "geboortedatum.time.month", "geboortedatum.time.year");
    auteur.setGeboortedatum(geboorteDatum);
}

getCompositeDate は、ServletRequestUtils を使用して Calendar オブジェクトを返します。私のJSPページで:

<form:select path="geboortedatum.time.date">
    <c:forEach var="i" begin="1" end="31" step="1">
        <form:option value="${i}" label="${i}" />
    </c:forEach>
</form:select>
<form:select path="geboortedatum.time.month">
    <c:forEach var="i" begin="1" end="12" step="1">
        <form:option value="${i - 1}" label="${i}" />
    </c:forEach>
</form:select>
<form:select path="geboortedatum.time.year">
    <c:forEach var="i" begin="1900" end="2013" step="1">
        <form:option value="${i}" label="${i}" />
    </c:forEach>
</form:select>

このコードを Spring 3 に変換するにはどうすればよいのだろうか、または不可能な場合の代替手段はあるのでしょうか。ありがとう

4

1 に答える 1

1

Spring 3 では、 @InitBinder を使用してオブジェクトをバインドできます

@InitBinder
protected void initBinder(WebDataBinder binder, WebRequest request) throws Exception {
//implementation
}

WebRequest オブジェクトを使用して、同じ方法でリクエスト属性を取得できます。

于 2012-06-20T10:34:36.837 に答える