3

我最近开始将我的网站移植到 Spring 3。我的模型有 Author 对象,我在其中存储了一些信息,其中包括 Calendar 类的对象。

为了摆脱解析日期,我使用 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 返回日历对象。在我的 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 回答