2011-02-09 15 views
5

Proszę spojrzeć na kody poniżej. Wyświetlane są cztery pola tekstowe.Obsługa wielu numerów <input> o tej samej nazwie w spring-mvc

Jeśli wpiszesz "1" i "2" do poprzednich pól tekstowych, zostaną one powiązane, jak się spodziewałem, jako "1,2" rozdzielone przecinkami.

Jednakże, jeśli wpisze się "2001/01/01" i "2001/01/02" w pozostałych dwóch skrzynkach są wiązane "2001/01/01". "2001/01/01" wiąże się tylko zaskakująco. Pierwszy parametr wydaje się mieć pierwszeństwo wiązania.

Chcę wiedzieć, gdzie zdefiniowano specyfikacje (HTTP lub SpringMVC lub ...?) Na ten temat, aby zrozumieć głęboko i dokładnie. Czy ktoś może mi pomóc?

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> 

Odpowiedz

5

To logiczne. Wiele ciągów znaków można przedstawić jako jeden String, rozdzielając je przecinkami. Wiele obiektów Date nie może być reprezentowanych jako jeden obiekt Date.

Zamiast tego można spróbować użyć String[] i Date[].

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

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

To rozwiąże problem.

Powiązane problemy