2013-08-10 23 views
17

Ben hazırda varlık ve fasulye var: ayrıcabahar mvc tarih formatı: Giriş

@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; 
    } 
} 

benim url gittiğinizde

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

ve

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

var Ben şunu görüyorum:

my form

Nasıl mm/GG/yyyy biçimine sahip olmasını zorlayabilirim?

+0

'@DateTimeFormat (pattern = "gg/MM/yyyy ") ve yeni SimpleDateFormat (" dd/MM/yyyy ")' dd/MM/yyyy'yi kullanır. 'Mm/GG/yyyy' olarak değiştirmeyi denediniz mi? –

+2

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

+0

Hayır, bu yardımcı olmaz çünkü form: girdi koymak için izin vermez varsayılan değeri açıkça –

cevap

6

çözümdür için
<mvc:annotation-driven/> koymak mvc-dispatcher-servlet.xml ve aynı zamanda xml dosyasının başlangıcına xmlns: mvc = "http://www.springframework.org/schema/mvc" .

22

Thanx Sen fmt kullanabilirsiniz: formatDate JSTL etiket:

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

biçiminde girmelisiniz. Giriş değeri yoktur ... –

+1

Evet, yanlış gösterim için özür dilerim. Uygulamamda aynı durum var, ancak tarih formatı doğrudur (Alandan önce DateTimeFormat ek açıklamasında belirttiğim gibi). Ve sadece alanın tanıtımı doğru değil: @ InitBinder yöntemim yok ve tüm işler doğru. Belki daha yeni bir yay kütüphanesi sürümü (3.1.1.RELEASE) var mı? – yname

4

benim kodda ben bu şekilde bağlayıcı kullanın:

@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

Gönderiyi dikkatlice okursanız, bu bana yardımcı olmaz. –

+0

Dene: $ (document) .ready (function() { \t $ (function() { \t \t $ ("# datepicker") datepicker ({ \t \t \t changeMonth:. Gerçek, \t \t \t changeYear : gerçek, \t \t \t DateFormat: 'gg/aA/yyyy' \t \t}); \t});

+0

I do not nee d datepicker. Tarih formatı beklediğim gibi değil. –

0

HTML5'de orada Bahar (Chrome, Opera input type = "tarihi", aynı şey ve çok bunu Safary ancak henüz Firefox

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