2013-08-10 2 views
17

나 최대 절전 모드 엔티티와 빈을 가지고 또한스프링 MVC 날짜 형식 : 입력

@Entity 
public class GeneralObservation { 
    @DateTimeFormat(pattern = "dd/MM/yyyy") 
    Date date; 

    @Column 
    public Date getDate() { 
     return date; 
    } 

    public void setDate(Date date) { 
     this.date = date; 
    } 
} 

나는 내 URL로 이동하면

@InitBinder 
protected void initBinder(WebDataBinder binder) { 
    SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy"); 
    binder.registerCustomEditor(Date.class, new CustomDateEditor(
      dateFormat, false)); 
} 

 form:input 
       id = "datepicker" 
       name="date" 
       itemLabel="date" 
       path="newObservation.date" 

이 알겠습니다 :

my form

어떻게 mm/DD/yyyy 형식으로 만들 수 있습니까?

+0

'@DateTimeFormat (패턴 = "일/DD/yyyy'로 변경하려고 했습니까? 'mm/DD/yyyy'로 변경하려고 했습니까? –

+2

http : //stackoverflow.com/questions/3457134/how-to-display-a-formatted-datetime-in-spring-mvc-3-0 – Algorithmist

+0

아니요, 이것은 도움이되지 않습니다 : form : input은 기본값은 명시 적으로 –

답변

6

해결 방법은 에
<mvc:annotation-driven/> 를 넣어 mvc-dispatcher-servlet.xml 및 xmlns : mvc = "http://www.springframework.org/schema/mvc" xml 파일의 시작 부분.

22

고맙습니다 당신은 FMT를 사용할 수 있습니다 : formatDate JSTL 태그 :

<fmt:formatDate value="${yourObject.date}" var="dateString" pattern="dd/MM/yyyy" /> 
<form:input path="date" value="${dateString} .. /> 
+7

양식에 입력해야합니다. 입력에 값 속성이 없습니다 ... –

+1

예, 허위 설명에 사과드립니다. 내 응용 프로그램에서 같은 상황이 있지만 날짜 형식이 정확합니다 (필드 앞에 DateTimeFormat 주석을 지정하는 것과 같습니다). 그리고 필드의 표시가 정확할뿐만 아니라 @InitBinder 메소드가없고 모든 것이 올바로 작동합니다. 어쩌면 최신 버전의 스프링 라이브러리 (3.1.1.RELEASE)가 있습니까? – yname

4

을 내 코드에서 나는이 방법으로 바인더를 사용

@InitBinder 
public void initBinder(WebDataBinder binder) { 
    SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy"); 
    dateFormat.setLenient(false); 
    binder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, true)); 
} 
+0

내 게시물을주의 깊게 읽으면이 사실이 도움이되지 않습니다. –

+0

시도 : $ (문서) .ready (함수() { \t $ (함수() { \t \t $ ("#의 날짜 선택기") 날짜 선택기 ({ \t \t \t changeMonth :. 사실, \t \t \t changeYear : 사실, \t \t \t는 dateFormat는 'DD/MM/YYYY " \t \t}) \t})

+0

I 그렇지 니 d datepicker. 날짜 형식이 내가 예상 한 형식이 아닙니다. –

0

이 HTML5에서이 봄 (크롬, 오페라에서 입력 유형 = "날짜", 같은 일을하고, 너무 I이 Safary하지만 아직 파이어 폭스에서

<form:input type="date" ... >