2011-01-09 7 views
4

입력을 타임 스탬프 값으로 변환하고 싶습니다.JSF 변환기 타임 스탬프

예제에서 dateconverter 만 있습니다. 모범 사례가 있습니까?

당신에게


업데이트 감사합니다

나는 사용자의 생일을 저장할하지만 내 백엔드 타임 스탬프 값이 필요합니다.

public void setBday(Date bday) { 
      member.setBirthday(new Timestamp(bday.getTime())); 
     } 
     public Timestamp getBday() { 
      return member.getBirthday(); 
     } 

을하지만 예외를 얻을 : 그리고 다음과 같이 내가 그것을 시도

어쩌면 예에 대한 링크가 helful :-)에게

것 .. 내 JSF 프론트 엔드에 결합에 문제가있는 (이상한) :

/createMember.xhtml @34,54 value="#{member.bday}": Cannot convert 13.01.83 01:00 of type class java.util.Date to class java.sql.Timestamp 

가 (때문에 get 메소드의 아마 있습니까?)

답변

5

바인드 0123에대신 원시 시간 소인을 밀리 초 단위로 가져 오거나 설정해야합니다. 당신은 입/출력에 사람이 읽을 수있는 날짜를 원하는 경우

<h:inputText value="#{bean.date.time}" /> 

또는, 그럼 그냥 #{bean.date}을 사용하는 스틱 표준 날짜 컨버터를 사용합니다.

<h:inputText value="#{bean.date}"> 
    <f:convertDateTime type="date" dateType="short" /> 
</h:inputText> 

백엔드에서는 타임 스탬프를 처리하기 위해 Date#getTime()을 사용하면됩니다.


업데이트 : 당신이 JDBC 특정 API를 사용하여 모델을 복잡하게해서는 안됩니다. java.util.Date은 타임 스탬프를 나타냅니다. java.sql.Timestamp을 사용하면 DB의 TIMESTAMP 또는 DATETIME 열에 java.util.Date을 계속 유지하려고합니다.

preparedStatement.setTimestamp(index, new Timestamp(bean.getDate().getTime())); 
+0

실제로 당신의 조언을 이해하지 않습니다 - 내 편집 질문에서/봐, 난 당신이 모델에서'java.sql.Timestamp'을 사용하는 것을 기대하지 않았다 – Sven

+0

하시기 바랍니다. 답변 업데이트를 참조하십시오. – BalusC

+0

하지만 jBPM과 같이 기본 API로 Timestamp를 사용해야하는 경우에는 어떻게해야합니까? http://community.jboss.org/thread/162961 –