2011-02-17 8 views
2

정말 기본적인 질문 :스프링 포맷터 서비스의 기초

스프링 기본 포맷터를 사용하면 어떻게 실제로 포맷 된 문자열을 렌더링합니까? 누군가가 나를 ???에서 어떤 일이 일어나는지, 아래의 코드 예제를 완료하는 데 도움이 :

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

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

답변

2

그것은 주석 구성된 포매터 만 개체의 필드와 메소드 매개 변수와 함께 사용하기위한 것 같다. 또한, 이러한 기능을 수동으로 사용하는 편리한 진입 점을 제공하는 것을 잊어 버린 것처럼 보입니다. 그래서, 당신은 같은 것을 할 수 있습니다

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")); 

를 사용할 수 있지만 데이터 바인딩 기능의 남용으로 보인다.