2011-02-09 60 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; 
    } 

这将解决您的问题。