2012-05-26 1 views
3

Недавно я начал переносить свой сайт на весну 3. Моя модель имеет объекты Author, в которых я храню некоторую информацию, которая включает в себя объект класса Calendar.Привязка объекта календаря к 3 выпадающим спискам весной 3

Чтобы избавиться от парсинга, я использую 3 раскрывающихся списка для настройки Календаря. Весной 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 вернет объект Calendar с помощью 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, или если есть альтернативы, если не возможно. Благодаря

ответ

1

Весной 3 @InitBinder может использоваться для привязки объекта,

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

Вы можете получить запрос атрибутов таким же образом, используя WebRequest объект.

+0

Может ли кто-нибудь предоставить любую информацию о том, как использовать связующее, чтобы сопоставить несколько полей? Я могу найти только примеры @InitBinder, которые используются для сопоставлений 1: 1. – Mouscellaneous