2016-03-31 11 views
1

私は少しSpring MVC(4.2.4.RELEASE)アプリケーションを構築していますが、日付フィールドにはいくつかの問題があります。Spring MVCフォームの日付フィールドに入力する

これで、日付のオブジェクトを作成できるようになりました。日付をtext/'open' htmlで表示できます。しかし、私はtype = dateという入力ボックスに値を設定することはできません。誰でも助けてくれますか?

だから私のPOJOは2つの日付フィールド

@DateTimeFormat(pattern = "yyyy-MM-dd") 
private Date startDate; 
@DateTimeFormat(pattern = "yyyy-MM-dd") 
private Date endDate; 

を持っている私は、私はビューにrequestAttributeと私ドンとしてPOJOを渡しているコントローラクラス

@InitBinder 
protected void initBinder(WebDataBinder binder) { 

    SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); 
    dateFormat.setLenient(true); 
    binder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat,false)); 

} 

にInitBinderを追加しました他のフィールドが表示されているので、ここに問題はありません。 JSPで

<table> 
    <tr> 
     <td>Start Date</td> 
     <td><form:input type="date" path="startDate" id="startDate" /></td> 
    </tr> 
    <tr> 
     <td>End Date</td> 
     <td><form:input type="date" path="endDate" id="endDate" /></td> 
    </tr> 
</table> 

フィールドは移入されません。これはフォーマットの問題であると確信していますが、タイプ= "日付"を取り除いて標準の文字列入力ボックスにするかのように、テキストボックスには日付が入力されます(ただしどこでも指定したフォーマットではありません)。

Tue Mar 01 00:00:00 GMT 2016

他の場所に「強制」する必要がありますか?

答えて

-1

私は答えを見つけた、問題の重要なコードを入れないためにも、自分の質問&に答えるために謝罪...私はそれが他の人への迅速な落とし穴として有用である可能性があると思った...

問題は、Model Interfaceを使用しているときにSpringのみ@DateTimeFormatアノテーションを使用しているように見えることです。私はこれを避けようとしました(私が見ることができる良い理由はない)、代わりにHttpServletRequestに定住していました。春は、コントローラは、モデル・インターフェース

@RequestMapping(value = "/person/edit/{id}", method=RequestMethod.GET) 
    public String getPersonForEdit(@PathVariable("id") long id 
      , **Model model**) throws IOException 
    { 
     ... 
     **model.addAttribute**("person", person); 
     return "editPerson"; 
    } 

を使用すると、日付形式がうまく働いた

@RequestMapping(value = "/person/edit/{id}", method=RequestMethod.GET) 
    public String getPersonForEdit(@PathVariable("id") long id 
      , HttpServletRequest request) throws IOException 
    { 
     ...  
     **request.setAttribute**("person", person); 
     return "editPerson"; 
    } 

日付形式をピックアップしていませんでした。

関連する問題