Я новичок в Spring Framework, и мне удалось создать очень простую CMS, использующую постоянство данных Hibernate (я использую базу данных MySQL) для отображения статей на главной странице. Моя модель данных использует терминологию Drupalesque (например, «узел»), потому что я привык к этой CMS. ;)
Сейчас я борюсь с задачей преобразования метки времени UNIX, хранящейся в базе данных, в формат даты ISO. Я решил написать свой собственный конвертер для этой задачи.
Я выполнил домашнее задание и прочитал справочные руководства по Spring, по поиску учебников и т. Д., Но кажется, что конвертеры - это прежде всего инструмент для преобразования данных из параметров GET и запросов POST. А как насчет преобразования полей из объектов, связанных в Model с помощью контроллеров? Что я пропустил во время исследования?
Часть кода JSP (frontpage.jsp):
<div id="content-wrapper">
<div id="center-column">
<c:forEach items="${NodeCollection}" var="node">
<div class="node">
<h3>${node.title}</h3>
<span class="pub_time">${node.timestamp}</span>
<div class="content">${node.teaser}</div>
</div>
</c:forEach>
</div>
Мой контроллер:
@Controller
public class FrontpageController {
private NodeRevisionsDAOImpl nodeRevisionsDAO;
@Autowired
void setnodeRevisionsDAO(NodeRevisionsDAOImpl myNodeRevisionsDAOImpl) {
this.nodeRevisionsDAO = myNodeRevisionsDAOImpl;
}
@RequestMapping ( value = "/index.htm", method = RequestMethod.GET )
ModelAndView getMainPage(ModelAndView mav) {
ModelMap modelMap = new ModelMap();
Collection nodes = nodeRevisionsDAO.listNodeRevisions(5);
modelMap.addAttribute("NodeCollection", nodes);
mav.setViewName("frontpage");
mav.addAllObjects(modelMap);
return mav;
}
}
Мой фиктивный конвертер (я добавлю реализацию позже):
package converters;
import org.springframework.core.convert.converter.Converter;
public class TimestampToDateConverter implements Converter<Long, String> {
public String convert(Long s) {
return "0000-00-00 00:00:00"; //Dummy code
}
}
Конфигурация диспетчера:
<mvc:annotation-driven conversion-service="conversionService" />
<bean id="conversionService" class="org.springframework.context.support.ConversionServiceFactoryBean">
<property name="converters">
<list>
<bean class="converters.TimestampToDateConverter"/>
</list>
</property>
</bean>