2011-02-09 31 views
5

請看下面的代碼。顯示四個文本框。在spring-mvc中處理多個<input> s同名

如果我在前面的文本框中輸入「1」和「2」,它們會按照我的預期綁定爲以逗號分隔的「1,2」。

但是,如果我輸入「2001/01/01」和「2001/01/02」,剩下的兩個箱子都綁定了「2001/01/01」。 「2001/01/01」只是出乎意料地受到了束縛。第一個參數似乎有一個綁定的優先級。

我想知道在哪裏定義了規範(HTTP或SpringMVC或...?)以便深入和準確地理解。有人能幫我嗎?

Form 
public class SampleForm { 

    private String name; 

    private Date date; 

    public Date getDate() { 
     return date; 
    } 

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

    public String getName() { 
     return name; 
    } 

    public void setName(String name) { 
     this.name = name; 
    } 
} 

JSP 
<form:form modelAttribute="form" method="post"> 
    <form:input path="name" /> 
    <form:input path="name" /> 
    <form:input path="date" /> 
    <form:input path="date" /> 
    <p> 
     <input type="submit" name="register" value="register" /> 
    </p> 
</form:form> 

回答

5

這是合乎邏輯的。多個字符串可以用逗號分隔表示爲一個String。多個Date對象不能表示爲一個Date對象。

您可以嘗試使用String[]Date[]來代替。

2
private List<Date> date= new ArrayList<Date>(); 

    public List<Date> getDate() { 
     return date; 
    } 
    public void setDate(List<Date> date) { 
     this.date= date; 
    } 

這將解決您的問題。