Основы сервиса форматирования Spring - PullRequest
2 голосов
/ 17 февраля 2011

Действительно простой вопрос:

Если я использую средства форматирования по умолчанию Springs, как мне на самом деле отформатировать отформатированную строку.Может кто-нибудь помочь мне завершить пример кода ниже, что идет в ???:

@DateTimeFormat(pattern="yyyy-MMM-dd hh:mmaa");
DateTime myJodaDateTime = ...;

System.out.println( "How do I print myJodaDateTime, formatted: " + ??? );

1 Ответ

2 голосов
/ 17 февраля 2011

Похоже, что сконфигурированные аннотации форматеры предназначены для использования только с полями объекта и параметрами метода.Более того, похоже, они забыли предоставить удобную точку входа для использования этих функций вручную.Таким образом, вы можете сделать что-то вроде этого:

public class Foo {
    @DateTimeFormat(pattern="yyyy-MMM-dd hh:mmaa")
    DateTime myJodaDateTime = ...; 
}
...
ConversionService cs = ...; // FormattingConversionService with default formatters
System.out.println(
    cs.convert(
        foo.myJodaDateTime, 
        new TypeDescriptor(Foo.class.getDeclaredField("myJodaDateTime")),
        TypeDescriptor.valueOf(String.class)
    )
);

В качестве альтернативы вы можете использовать

BeanPropertyBindingResult r = new BeanPropertyBindingResult(foo, "foo");
r.initConversion(cs);
System.out.println(r.getFieldValue("myJodaDateTime"));

, но это выглядит как злоупотребление функциональностью привязки данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...